Para funcionar, as abreviações precisam ser separadas por espaços em branco. Por exemplo, se eu tiver uma iab fo FOOBAR
digitação whatfo
, não acionará a abreviação. Existem algumas razões sensatas óbvias para isso.
No entanto, eu gostaria de uma abreviação que pudesse ser usada como sufixo sem que eu precisasse acionar o iab e depois voltar e remover o espaço. Isso é possível? Por exemplo iab fo <backspace>FOOBAR
,.
abbreviations
Cachinhos Dourados
fonte
fonte
Respostas:
Você pode escrever dentro do seu vimrc:
iab fo <BS>FOOBAR
<BS>
é a notação a ser usada para a chave de backspace.Para obter mais informações sobre nomes de chaves especiais, consulte:
fonte
[7:0]
e você teria que brincar com o número deb
s etc. para personalizar isso, eu acho.b
ee
comB
eE
seja suficiente. Mas pode haver outros casos em que isso falharia, eu não sei. De qualquer forma, a primeira versão deve, esperançosamente, funcionar a maior parte do tempo.iab fo <BS>foobar
foi suficiente. Desculpe pela inconveniência, você provavelmente deve marcar a resposta de @djjcast como a resposta correta. No momento, não consigo remover minha resposta, mas uma vez que posso, irei. Mais uma vez, desculpe, não estou acostumado a abreviações.<BS>
era exatamente isso. Juro que tentei algo assim, mas não conheço todos os personagens de controle, então poderia ter usado<backspace>
ou algo assim.:help key-notation
Basta pressionar no modo de inserção Ctrl]. Isso fará com que as abreviações sejam expandidas, sem entrar em um espaço
fonte
X(FOOBAR)
nãoX( FOOBAR
. Usar Ctrl-] apenas elimina o espaço no final . Eu preciso ser capaz de usar a abreviação - que também depende do espaço em branco no início do disparo - mas concatenada com a palavra anterior (é isso que significa " sufixo ").${1}FOOBAR
- essa é uma boa resposta. Se você quiser alterar isso: / ou adicionar outra resposta, assinalarei isso.Como alternativa, eis uma maneira de definir e expandir abreviações que se expandem em qualquer lugar:
Basta adicionar as abreviações que devem se expandir em qualquer lugar do
s:anywhere_abbreviations
dicionário. As:MaybeExpandAbbreviation()
função procura e expande as correspondências de abreviações quando a tecla trigger é pressionada -<Space>
é mapeada para disparar a expansão das "abreviações em qualquer lugar".Com o
s:anywhere_abbreviations
dicionário acima , a digitaçãowhatfo<Space>
será expandida parawhatFOOBAR
.fonte
Para resumir as duas respostas mais simples que surgiram disso:
Você pode usar um backspace diretamente em uma abreviação - vários caracteres especiais estão documentados em
:help keycodes
. Então, por exemplo:Permitirá que você digite
trans cdt
e obtenhatranscendental
.Um dos quais me sinto particularmente envergonhado desde que o uso há anos: O plug-in snipMate comum permite que os parâmetros fiquem na frente, então
Permite digitar
cdt
, que Tabserá expandido paracendental
e colocar o cursor na frente para que você possa digitartrans
e pressione Tabnovamente para ir para o início da próxima palavra.fonte