Dosya adları için Vim'in normal (Bash benzeri) sekmesini tamamlamasını nasıl sağlayabilirim?


289

Vim'de yeni bir dosya açtığımda ve sekme tamamlamayı kullandığımda, Bash gibi kısmi eşleşmeyi yapmak yerine tüm dosya adını tamamlıyor. Bu dosya adı sekmesinin tamamlanmasını Bash gibi daha iyi hale getirme seçeneği var mı?


10
Teknik olarak, "bash" ın herhangi bir sekme tamamlamadığından eminim. Bunu yapan readline.
Maxy-B

2
^ X ^ F özelliğinin davranışını özelleştirmekten bahsediyoruz?
BrunoJCM

Yanıtlar:


413

Ben şahsen kullanıyorum

set wildmode=longest,list,full
set wildmenu

İlk sekme isabetini yazdığınızda, olabildiğince tamamlanır. İkinci sekme isabeti bir liste sağlayacaktır. Üçüncü ve sonraki sekmeler tamamlama seçenekleri arasında dolaşır, böylece dosyayı başka anahtarlar olmadan tamamlayabilirsiniz.

Bash benzeri sadece

set wildmode=longest,list 

ama dolu çok kullanışlı.


1
Keşke bu vim varsayılan davranış olsaydı. Ben bu yazı görünceye kadar tam sekme tamamlama dolaşmak yoktu rağmen.
Neha Karanjkar

6
@NehaKaranjkar Yeni ortamlarda konuşlandırmayı kolaylaştırmak için dotfiles arşivini korumanızı tavsiye ederim
michael

2
Sadece birkaç sonuç olduğunda tam olarak başlamanın bir yolu var mı? gibi bir şey set wildmode=longest,5full,list. Lot sonuçları dolu ile işe yaramaz ama çok az kullanışlı. "Tamamlanma yalnızca bir satır ekranına
uyuyorsa

1
Bu eskiden çalışıyordu (gVim / ubuntu) ama şimdi çalışmıyor (macvim8.x / macOS). Bkz örnek . Herhangi bir fikir?
Paschalis

1
Başlangıç ​​sekmesinin 2 ay boyunca tamamlanmasını tolere ettikten sonra, basitleştirmenin bir yolu olması gerektiğini düşünüyorum. Teşekkür ederim.
ramwin

23

Bash'ın tamamlanmasına en yakın davranış olmalı

set wildmode=longest:full,full

Birkaç karakter yazıldığında, sekmeye bir kez basıldığında mevcut tüm eşleşmeler elde edilir wildmenu. Bu, Michael'ın komut satırının altında hızlı düzeltmeye benzer bir pencere açan cevabından farklıdır.

Ardından, karakterlerin geri kalanını yazmaya devam edebilir veya ilk eşleme ve etrafında daire çizerek otomatik olarak tamamlamak için sekmeye tekrar basabilirsiniz.


Bence bu yolu tercih ederim.
Eddy Ekofo

8

Wildmenu'yu ayarlamak istemiyorsanız, bir dosyayı açmak istediğinizde her zaman Ctrl+ tuşuna basabilirsiniz L. Ctrl+ LBash tamamlaması gibi dosya adını tamamlar.


Ctrl-L bash otomatik tamamlama gibi davranmaz. Olası tüm seçenekler arasında geçiş yapmaz.
raine

2
Benim bashım böyle davranıyor. <Tab>Geçerli kadarıyla (gibi açık bir şekilde mümkün olduğu gibi dize tamamlar CTRL-LVim) ve <Tab><Tab>gösterileri (gibi olası eşleşmelerin listesini CTRL-DVim).
glts

8

Önerilen wildmode / wildmenu dışında, Vim Ctrl+ ile olası tüm tamamlamaları gösterme seçeneği de sunar D. Bu, benim gibi Vim'de farklı otomatik tamamlama seçenekleri ararken bu soruya rastlayan bazı kullanıcılar için yararlı olabilir.


4

Geçerli arabellek aramak için Ctrl+ aracılığıyla Vim otomatik tamamlama kullandığınız varsayıyorum N. Bu komutu kullandığınızda, çözümlerin bir listesini alırsınız; listedeki bir sonraki öğeye gitmek için komutu tekrarlamanız yeterlidir. Aynı şey tüm otomatik tamamlama komutları için de geçerlidir. Kelimenin tamamını doldururken, kullanmak istediğiniz kelimeye gelene kadar listede ilerlemeye devam edebilirsiniz.

Bu daha kullanışlı bir komut olabilir: Ctrl+ P. Tek fark, Ctrl+ Parabellekte geriye doğru arama yaparken Ctrl+ Nileriye doğru arama yapar ... Gerçekçi olarak, her ikisi de aynı öğelere sahip bir liste sağlar ve sadece farklı bir sırada görünebilirler.


0

Kullanmayı deneyin :set wildmenu. Bunun dışında tam olarak ne denediğinden emin değilim.

Oh, evet, ve belki bu bağlantıyı deneyin: link

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.