Como executar um comando na inicialização do vim


11

Acabei de instalar um plugin para python que exibe a árvore de métodos. Então, eu gostaria de abrir a árvore na inicialização, portanto não é necessário pressionar os botões toda vez que abro algum .pyarquivo. Mas, eu quero que este comando seja executado apenas para .pyarquivos. Aqui está como minha peça do vimrc se parece:

nmap <F8> :TagbarToggle<CR>

Existe uma maneira de executar este comando na inicialização apenas para .pyarquivos?


Olá, St. Antario. Você pode observar que sua resposta aceita tem muito menos votos positivos do que a resposta alternativa.
pintos

Respostas:


8

Adicione no seu .vimrc:

au BufEnter *.py :TagbarToggle<CR>

Onde

  • auautocmdOu seja , execute o comando automaticamente.

  • BufEnter é quando você insere o arquivo pela primeira vez.

  • *.py é para python do tipo de arquivo.

  • e o resto é o comando a ser executado

2
Isso adicionará um comando automático extra toda vez que .vimrcfor fornecido. Para evitar isso, a linha deve estar cercada por um augroup que exclua o comando. Veja :help augroup-delete.
Rich

: augroup testgroup: autocmd! : au BufEnter * .py: TagbarToggle <CR> augroup END está ok?
kapil

1
Parece bom para mim!
Rich

10

Na minha opinião, o método mais limpo de fazer isso é simplesmente adicionar o comando a um arquivo no seu .vim/vimfilesdiretório:

~/.vim/after/ftplugin/python.vim

ou para Windows:

$HOME\vimfiles\after\ftplugin\python.vim

Essa técnica está documentada em :help ftplugin-overrule(item 3 da lista), embora o contexto (alteração de configurações) seja um pouco diferente.

Ele oferece os seguintes benefícios sobre a técnica de comando automático descrita por kapil .

  1. Menos código . Você acabou de escrever o Vimscript que deseja executar. Você não precisa de código de um autocommand e coloque-a augroupe autocommand!comandos claros.

  2. Menos sobrecarga . O Vim já está detectando o tipo de arquivo e verificando a existência do after/ftplugin/filetypearquivo: por que adicionar um comando automático adicional que executa a mesma finalidade?

  3. Limpador.vimrc . Eu acho que é melhor ter a funcionalidade específica do tipo de arquivo separada da minha .vimrc. (Porém, alguns discordam disso: veja as desvantagens abaixo.)

Ele também tem algumas desvantagens menores:

  1. Só funciona se você estiver usando a detecção de tipo de arquivo do Vim. ( :help filetype)

    No entanto, essa geralmente é uma das primeiras configurações que as pessoas ativam em seu .vimrc, e eu aposto que quase todos os usuários do Vim já o têm ativado.

  2. Algumas pessoas preferem manter todas as suas configurações em seus .vimrcarquivos.


1
+1 para ftplugin/<filetype>.vim, melhor separação de interesses :)
LEI
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.