Thay vào đó, đây là một cách để xác định và mở rộng các chữ viết tắt mở rộng ở bất cứ đâu:
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>")
Chỉ cần thêm các chữ viết tắt nên mở rộng bất cứ nơi nào vào s:anywhere_abbreviations
từ điển. Các s:MaybeExpandAbbreviation()
tìm kiếm chức năng cho và mở rộng các trận đấu từ viết tắt khi chìa khóa kích hoạt được nhấn - <Space>
là ánh xạ để kích hoạt việc mở rộng của "chữ viết tắt ở bất cứ đâu".
Với s:anywhere_abbreviations
từ điển trên , gõ whatfo<Space>
sẽ mở rộng sang whatFOOBAR
.