Vim başlangıcında bir komut nasıl çalıştırılır


11

Ben sadece yöntemleri ağaç görüntüler python için bir eklenti yükledim. Bu yüzden başlangıçta ağacı açmak istiyorum, bu yüzden her .pydosya açtığımda düğmelere basmaya gerek yok . Ancak, bu komutun yalnızca .pydosyalar için yürütülmesini istiyorum . İşte vimrc parçam şöyle:

nmap <F8> :TagbarToggle<CR>

Bu komutu başlangıçta yalnızca .pydosyalar için yürütmenin bir yolu var mı ?


Merhaba Aziz Antario. Kabul edilen cevabınızın alternatif cevaptan daha az sayıda oy hakkına sahip olduğunu belirtmek isteyebilirsiniz.
civciv

Yanıtlar:


8

Ekle .vimrc:

au BufEnter *.py :TagbarToggle<CR>

nerede

  • auolduğunu autocmd, otomatik komutu yürütün.

  • BufEnter dosyayı ilk kez girdiğiniz zamandır.

  • *.py filetype python içindir.

  • geri kalanı ise uygulanacak komut

2
Bu, her .vimrckaynak verildiğinde fazladan bir otomatik komut ekleyecektir . Bunu önlemek için, çizginin komutu silen bir grupla çevrelenmesi gerekir. Bkz :help augroup-delete.
Zengin

: ağ test grubu: autocmd! : au BufEnter * .py: TagbarToggle <CR> augroup END iyi mi?
kapil

1
Bana iyi görünüyor!
Zengin

11

Bence, bunu yapmanın en temiz yöntemi, komutu .vim/vimfilesdizininizdeki bir dosyaya eklemektir :

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

veya Windows için:

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

:help ftplugin-overruleBağlam (ayarları değiştirme) biraz farklı olmasına rağmen bu teknik (liste öğesi 3) içinde belgelenmiştir .

Kapil tarafından tarif edilen otokommand tekniği üzerinde aşağıdaki avantajları sunar .

  1. Daha az kod . Sadece yürütmek istediğiniz Vimscript yazmanız yeterlidir. Sen koduna bir autocommand ihtiyaç ve onu çevreleyen yok augroupve autocommand!net komutlar.

  2. Daha az ek yük . Vim zaten dosya türünü tespit ediyor ve dosyanın varlığını kontrol ediyor after/ftplugin/filetype: neden aynı amacı yerine getiren ek bir otocommand eklensin?

  3. Temizleyici.vimrc . Dosya türüne özgü işlevlerin bilgisayarımdan ayrılmasının daha iyi olduğunu düşünüyorum .vimrc. (Bununla birlikte, bazıları buna katılmıyor: aşağıdaki dezavantajlara bakın.)

Ayrıca birkaç küçük dezavantajı vardır:

  1. Yalnızca Vim'in dosya türü algılamasını kullanıyorsanız çalışır. ( :help filetype)

    Ancak, bu genellikle insanların .vimrc'de etkinleştirdiği ilk ayarlardan biridir ve neredeyse tüm Vim kullanıcılarının zaten açık olduğundan emin olabilirim.

  2. Bazı kişiler tüm yapılandırmalarını .vimrcdosyalarında tutmayı tercih eder .


1
+1 için ftplugin/<filetype>.vim, endişelerin daha iyi ayrılması :)
LEI
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.