Uma coleção selecionada de padrões e trechos práticos de Vimscript para desenvolvimento de plugins e personalização do vimrc.
Mapeamentos de Teclas e Comandos
" Vincular comando de usuário a uma função local do script
command! YoFunctionHere call s:YoFunctionHere()
" Mapear tecla silenciosamente no modo normal
nnoremap <silent> x :call <SID>FunctionHere()<CR>
function! s:FunctionHere()
" Implementação
endfunction
Chamando Funções no Modo Inserção
" Usar registrador de expressão (=) para inserir o resultado
inoremap X <C-R>=script#myfunction()<CR>
inoremap <F2> <C-R>=MyVimFunc()?'':''<CR>
Verificando Disponibilidade de Plugins
if globpath(&rtp, "plugin/commentary.vim") != ""
" Plugin Commentary instalado
endif
Carregamento Automático (Autoloading)
" autoload/hello.vim
if exists("g:hello_loaded") | finish | endif
let g:hello_loaded = 1
function! hello#method()
echo "Olá de uma função autoloaded!"
endfunction
Chamar hello#method() carrega e executa automaticamente autoload/hello.vim sob demanda.
Diversos
Verificações de Versão
if v:version < 704
echom "Este plugin requer Vim >= 7.4"
finish
endif