Como alternativa, aquí hay una manera de definir y expandir abreviaturas que se expanden en cualquier lugar:
let s:anywhere_abbreviations = {
\ 'fo': 'FOOBAR',
\ 'ab': 'ABBREVIATION',
\ }
function! s:MaybeExpandAbbreviation(trigger)
for key in keys(s:anywhere_abbreviations)
if matchstr(getline('.'), repeat('.', strchars(key)) . '\%' . col('.') . 'c') ==# key
return repeat("\<BS>", strchars(key)) . s:anywhere_abbreviations[key] . a:trigger
endif
endfor
return "\<C-]>" . a:trigger
endfunction
inoremap <expr> <Space> <SID>MaybeExpandAbbreviation("\<Space>")
Simplemente agregue las abreviaturas que deberían expandirse en cualquier parte del s:anywhere_abbreviations
diccionario. La s:MaybeExpandAbbreviation()
función busca y expande las coincidencias de abreviaturas cuando se presiona la tecla de activación, <Space>
se asigna para activar la expansión de las "abreviaturas en cualquier lugar".
Con el s:anywhere_abbreviations
diccionario anterior , la escritura whatfo<Space>
se expandirá a whatFOOBAR
.