Come eseguire un comando all'avvio di vim


11

Ho appena installato un plugin per Python che visualizza l'albero dei metodi. Quindi vorrei aprire l'albero all'avvio, quindi non è necessario premere i pulsanti ogni volta che apro un .pyfile. Ma voglio che questo comando venga eseguito solo per i .pyfile. Ecco come appare il mio pezzo di vimrc:

nmap <F8> :TagbarToggle<CR>

C'è un modo per eseguire questo comando all'avvio solo per i .pyfile?


Salve Sant'Antario. Potresti voler notare che la tua risposta accettata ha molti meno voti rispetto alla risposta alternativa.
pulcini,

Risposte:


8

Aggiungi nel tuo .vimrc:

au BufEnter *.py :TagbarToggle<CR>

dove

  • auè autocmd, eseguire il comando automaticamente.

  • BufEnter è quando si inserisce il file per la prima volta.

  • *.py è per filetype python.

  • e il resto è il comando da eseguire

2
Ciò aggiungerà un comando automatico aggiuntivo ogni volta che .vimrcviene fornito. Per evitare ciò, la linea dovrebbe essere circondata da un gruppo di annunci che elimina il comando. Vedere :help augroup-delete.
Ricco

: auggroup testgroup: autocmd! : au BufEnter * .py: TagbarToggle <CR> augroup END va bene?
Kapil,

1
Mi sembra buono!
Ricco

10

Secondo me, il metodo più pulito per farlo è semplicemente quello di aggiungere il comando a un file nella tua .vim/vimfilesdirectory:

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

o per Windows:

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

Questa tecnica è documentata in :help ftplugin-overrule(voce di elenco 3), sebbene il contesto (modifica delle impostazioni) sia leggermente diverso.

Offre i seguenti vantaggi rispetto alla tecnica di autocommand descritta da kapil .

  1. Meno codice . Devi solo scrivere il Vimscript che vuoi eseguire. Non è necessario codificare un comando automatico e circondarlo con augroupe autocommand!cancellare i comandi.

  2. Meno spese generali . Vim sta già rilevando il tipo di file e sta verificando l'esistenza del after/ftplugin/filetypefile: perché aggiungere un autocommand aggiuntivo che svolge lo stesso scopo?

  3. Più pulito.vimrc . Penso che sia meglio avere funzionalità specifiche del tipo di file separate dalla mia .vimrc. (Alcuni non sono d'accordo con questo, però: vedi gli svantaggi, di seguito.)

Ha anche un paio di svantaggi minori:

  1. Funziona solo se si utilizza il rilevamento del tipo di file di Vim. ( :help filetype)

    Tuttavia, questa è generalmente una delle prime impostazioni che le persone abilitano nel loro .vimrc, e scommetterei che quasi tutti gli utenti di Vim lo hanno già acceso.

  2. Alcune persone preferiscono mantenere tutte le loro configurazioni nel loro .vimrcfile.


1
+1 per ftplugin/<filetype>.vim, una migliore separazione delle preoccupazioni :)
LEI
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.