Sebagai alternatif, berikut ini cara untuk mendefinisikan dan memperluas singkatan yang berkembang di mana saja:
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>")
Cukup tambahkan singkatan yang harus diperluas ke s:anywhere_abbreviations
kamus mana saja . The s:MaybeExpandAbbreviation()
pencarian fungsi untuk dan mengembang pertandingan singkatan ketika tombol pemicu ditekan - <Space>
dipetakan untuk memicu perluasan "singkatan di mana saja".
Dengan s:anywhere_abbreviations
kamus di atas , mengetik whatfo<Space>
akan diperluas ke whatFOOBAR
.