O comando au[tocommand]
recebe um evento FileType
que é executado quando filetype
foi definido (por exemplo, na inicialização com um nome de arquivo). Por exemplo. em ~/.vimrc
:
au Filetype python source ~/.vim/scripts/python.vim
Acabei de descobrir recentemente que quando você insere um espaço sem quebra ( nbsp ) em um documento HTML
e defina o encoding
para utf-8, você não terá que digitar nbsp;
repetidamente para formatar o texto. Eu no começo
pensei, ei, por que eu não mapeio isso para a barra de espaço como :imap <SPACE> <C-R>=nr2char(160)<CR>
.
Mais tarde, editei meu .vimrc
e quando reiniciei o Vim, recebi dezenas de erros sobre alguma função que precisava de um
nome mesmo que eu tivesse dado. Eu percebi que o nbsp
não é tratado como um espaço (duh) mesmo que ele seja
parece um. Então, eu pensei que uma maneira melhor seria ter um mapeamento por tipo de arquivo, para que eu quando estou editando um documento html, o espaço insere um nbsp
e um espaço normal chr(32)
ao editar qualquer outro arquivo. > Como faço isso?
Você pode usar plug-ins de tipo de arquivo que só são originados quando o arquivo é de um determinado tipo de arquivo. Para configurar isso, crie o arquivo ~/.vim/ftplugin/html.vim
e coloque seus comandos nesse arquivo. Se já houver um arquivo, você poderá criar um diretório chamado html e, em seguida, todos os arquivos no diretório serão originados. Dê uma olhada em :h ftplugin-name
para outras opções de nomenclatura. (Se os diretórios não existirem, crie-os)
Tudo o que você precisa ter em seu vimrc é filetype plugin indent on
(indent não é realmente necessário para isso, mas normalmente é útil).
Também pode ser importante tornar o mapeamento local para o buffer apenas usando
map <buffer>
Também pode ser útil consultar :h ftplugin
e :h filetype