Jak wykonać polecenie podczas uruchamiania vima

11

Właśnie zainstalowałem wtyczkę do Pythona, która wyświetla drzewo metod. Chciałbym więc otworzyć drzewo podczas uruchamiania, więc nie trzeba naciskać przycisków za każdym razem, gdy otwieram jakiś .pyplik. Ale chcę, aby to polecenie było wykonywane tylko dla .pyplików. Oto jak wygląda mój kawałek vimrc:

nmap <F8> :TagbarToggle<CR>

Czy istnieje sposób na wykonanie tego polecenia podczas uruchamiania tylko dla .pyplików?

St.Antario
źródło
Howdy St. Antario. Warto zauważyć, że zaakceptowana odpowiedź ma znacznie mniej głosów pozytywnych niż odpowiedź alternatywna.
pisklęta

Odpowiedzi:

8

Dodaj w .vimrc:

au BufEnter *.py :TagbarToggle<CR>

gdzie

  • aujest autocmd, wykonaj polecenie automatycznie.

  • BufEnter jest, gdy wprowadzasz plik po raz pierwszy.

  • *.py jest dla python typu pliku.

  • a reszta to polecenie, które należy wykonać
kapil
źródło
2
Spowoduje to dodanie dodatkowej komendy automatycznej za każdym razem, gdy .vimrcjest pozyskiwana. Aby temu zapobiec, linia powinna być otoczona augroup, która usuwa polecenie. Zobaczyć :help augroup-delete.
Bogaty
: augroup grupa testowa: autocmd! : au BufEnter * .py: TagbarToggle <CR> augroup END czy jest w porządku?
kapil
1
Dla mnie wygląda dobrze!
Bogaty
11

Moim zdaniem najczystszą metodą jest dodanie polecenia do pliku w .vim/vimfileskatalogu:

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

lub dla Windows:

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

Ta technika jest udokumentowana w :help ftplugin-overrule(pozycja listy 3), chociaż kontekst (zmiana ustawień) jest nieco inny.

Oferuje następujące korzyści w porównaniu z techniką automatycznego wydawania poleceń opisaną przez kapil .

  1. Mniej kodu . Po prostu napisz Vimscript, który chcesz wykonać. Nie trzeba do kodu autokomendy i otaczają go augroupi autocommand!wyraźne polecenia.

  2. Mniej kosztów ogólnych . Vim już wykrywa typ pliku i sprawdza jego istnienie after/ftplugin/filetype: po co dodawać dodatkową komendę automatyczną, która spełnia ten sam cel?

  3. Cleaner.vimrc . Myślę, że lepiej jest oddzielić funkcje specyficzne dla typu pliku od mojej .vimrc. (Niektórzy jednak się z tym nie zgadzają: zobacz wady poniżej.)

Ma również kilka drobnych wad:

  1. Działa tylko wtedy, gdy używasz wykrywania typu pliku Vima. ( :help filetype)

    Jest to jednak na ogół jedno z pierwszych ustawień, które ludzie włączają w swoim .vimrc, i postawiłbym na to, że prawie wszyscy użytkownicy Vima już go włączyli.

  2. Niektóre osoby wolą zachować całą konfigurację w swoim .vimrcpliku.

Bogaty
źródło
1
+1 za ftplugin/<filetype>.vim, lepsze rozdzielenie problemów :)
LEI