2009-02-09 26 views
243

當我在vim中打開一個新文件並使用tab完成時,它會完成整個文件名,而不是像bash那樣進行部分匹配。有沒有一個選項使這個文件名選項卡完成工作更像bash?如何讓vim做到正常(bash就像)tab完成文件名?

+9

從技術上講,我很確定「bash」不會執行任何製表符。這是readline。 – 2012-03-09 22:50:10

+2

我們正在討論如何自定義^ X^F功能的行爲? – BrunoJCM 2015-08-26 17:35:24

回答

353

我個人使用

set wildmode=longest,list,full 
set wildmenu 

當您鍵入的第一個選項卡命中將完成儘可能多的,第二個標籤命中將提供一個列表,第三和後續標籤將通過完成選項週期這樣你就可以完成文件沒有進一步鍵

慶典等不會只是

set wildmode=longest,list 

但全是非常方便的

+4

這是我從頭開始重新啓動vimrc時總是忘記如何設置的事情之一。謝謝! – 2009-02-10 17:32:02

4

我假設你正在使用vim的自動完成通過按Ctrl +ñ通過電流緩衝搜索。當您使用此命令時,您會得到一個解決方案列表,只需重複該命令即可轉到列表中的下一個項目。所有自動完成命令也是如此。當他們填寫整個單詞時,您可以繼續瀏覽列表,直到您到達想要使用的單詞。

希望這是有幫助的。

編輯1:這可能是一個更有用的命令:Ctrl鍵 + p。唯一的區別是,按Ctrl +p搜索倒着的緩衝,同時按Ctrl +ñ搜索向前......實際上,他們都將提供相同的元素的列表,他們可能只是出現在不同訂購。

2

嘗試使用:set wildmenu。除此之外,我不確定你到底在想什麼。請詳細說明一下。哦,是的,也許嘗試此鏈接:link

6

如果你不想設置wildmenu,你可以隨時按下Ctrl鍵+大號要打開的文件。 Ctrl + L將完成文件名,如bash完成。

16

最接近的行爲bash的完成應該是

set wildmode=longest:full,full 

隨着鍵入幾個字符,按一次Tab將給所有在wildmenu可用的比賽。這與Michael的回答有所不同,後者在命令行下打開類似quickfix的窗口。

然後,您可以繼續輸入其餘的字符,或再次按選項卡以自動完成第一個匹配並圍繞它。

5

除了建議wildmode/wildmenu,VIM還提供選項可以使用按Ctrl +d顯示所有可能的完成。這對於那些在像我這樣的vim中搜索不同的自動完成選項時偶然遇到這個問題的用戶可能會有所幫助。

相關問題