Vim ekleme modundayken, dosya yolu otomatik tamamlama eklemenin bir yolu var mı?


81

Çok sayıda kabuk komut dosyası yazıyorum ve sürekli olarak dosya yollarına girmek zorunda kalıyorum. Merak ediyorum, tıpkı favori kabuğunuzdayken dizinin veya dosyanın yolunu tamamlamak için sekmeniz gibi, ekleme modundayken Vim'in dosya yollarını otomatik olarak tamamlaması için bir yol bilen var mı merak ediyorum.

CTRLDVim ekleme kipine kabuğun işlevselliğini alabiliyorsanız ekstra kredi (yani mevcut yolda hangi dosyaların / dizinlerin olduğunu görmek için).


ilginç soru, yanıtı da bilmek isterim :)
Jay Zeng

@stephenmm Ctrl-D kabuğunuzda ne yapar? Benim bash kabuğumda, bir metin girdiğimde hiçbir şey yapmıyor, aksi takdirde terminali kapatıyorum.
alhelal

@alhelal - Görünüşe göre CTRL-D bazı eski kabuğumdaki dosyaları ve dizinleri gösterecek. Artık herhangi bir CTRL-D işlevi görmüyorum.
stephenmm

Yanıtlar:


166

İçin dosya adı omni tamamlama, şunları kullanabilirsiniz:

Ctrl- XCtrl-F


11
Başka bir vim aha an .... Teşekkürler. Tabi ekleme modunda zaten kullanmıyorum, bu yüzden bunu .vimrc: imap <Tab> <CX> <CF>
stephenmm

4
Ekleme modunda <tab> için başka bir iyi kullanım da <cn>. Bu, yazdığınız kelimeyi, üzerinde çalıştığınız dosyadaki diğer kelimelere göre otomatik olarak tamamlayacaktır. Değişken veya sınıf adlarını yazarken her zaman kullanırım.
Derek

Arama yolunu etkilemenin herhangi bir yolu var mı? Bir C dosyasına #include girişleri eklerken, yollar dosyayı nereden açtığınıza göre olmayabilir.
Rob Bradford

@RobBradford YouCompleteMe'yi deneyin, eğer doğru bilgi verilirse (örneğin, cmake tabanlı derleme sistemimi kullanan YCM-Generator tarafından oluşturulan .ycm_extra_conf.py kullanıyorum), dahil klasörlerinizdeki herhangi bir yol adını güzel bir şekilde otomatik tamamlayacaktır.
Emile Vrijdags

Dosya adında boşluklar olduğunda Vim otomatik tamamlayamaz. Bunu düzeltmenin bir yolu var mı?
Jean


18

@CMS ve @michael mükemmel cevapları geliştirmek için

ctrl+ X ctrl+ fKomut dizisini kullanırken , geçerli dizindeki dosyaların bir listesini görüntüler. Farklı dosya adları arasında yukarı ve aşağı hareket etmek için doğru anahtarı aramak için bir dakika harcıyorum. Doğru tuşlar Ctrl-n ve Ctrl-p'dir. SpaceSeçmek ve yazmaya devam etmek için hemen hemen tüm diğer tuşları (gibi ) kullanabilirsiniz.

Ek olarak, eklemek istediğiniz dosya / dizinde değilseniz, aşağıdaki gibi bir dosya ağacı yapısına gidebilirsiniz:

  1. İsteğe bağlı olarak dizinin bir bölümünü girin. Hatta ../../örneğin kullanabilirsiniz !
  2. ctrl+ X ctrl+ Tuşlarına basın fve listeden ağaçtaki ilk öğeyi seçin.
  3. Ardından , dizin ağacı yapısının altındaki bir sonraki seviyenin bir listesini görüntülemek için doğru öğe vurgulanırken ctrl+ düğmesine ftekrar basın .

Belgeye eklemek istediğiniz dizini / dosyayı bulana kadar bunu yapmaya devam edebilirsiniz.


6
3. adımda ctrl + x ve ctrl + f mi demek istediniz? Sadece ctrl + f benim için çalışmadığından, ctrl + n ile aynı işlevi görür. Btw bir dizinde boşluklar varsa burada çalışmaz: /. bir çözüm biliyor musun?
Rojo

0

Ben de benzer bir sorun yaşadım. Gibi bir çözüm buldum:

    sudo apt-get install realpath

Ve VIM naviagte'de normal mod tipinde dosyalamak için:

    :r !realpath /path/to/file

Realpatch'ten sonra ekleme olmayan modda gezinirken, anahtar düğmemizi kullanabilirsiniz.

VOILA! TAB tekrar çalışıyor!

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.