2009-12-17 81 views
64

我寫了很多shell腳本,並且不斷地輸入文件路徑。我想知道是否有人知道在插入模式下讓Vim自動完成文件路徑的方法,就像當你在你最喜歡的shell中你選擇完成目錄或文件的路徑一樣。在Vim插入模式下,是否有添加文件路徑自動完成的方法?

額外的信用,如果你能得到CTRLd功能的外殼給Vim插入模式(即以查看哪些文件/目錄是在當前路徑)。

+0

有趣的問題,我很想知道答案:) – 2009-12-17 04:37:37

+0

@stephenmm Ctrl-D在你的shell中做了什麼?在我的bash shell中,當我輸入一些文本時它什麼都不做,否則關閉終端。 – alhelal 2018-02-15 06:19:51

回答

126

file name全方位後,您可以使用:

按Ctrl - X按Ctrl - ˚F

+10

另一個vim aha時刻....謝謝。我不在插入模式下使用tab,所以將其添加到我的.vimrc中: imap stephenmm 2009-12-17 05:19:16

+1

插入模式下的另一個好用處是。這會根據您正在處理的文件中的其他字詞自動填寫您正在輸入的單詞。我在輸入變量或類名時一直使用它。 – Derek 2009-12-18 15:51:10

+0

@stephenmm偉大的額外提示! – Ergwun 2012-05-08 06:09:04

17

CTRL - XCTRL - ˚F

:he compl-filename

14

要建立在@CMS和@邁克爾出色的答案

當使用CTRL +XCTRL +˚F命令序列,它會顯示文件列表在當前目錄中。我花了一分鐘時間尋找在不同文件名之間上下移動的正確鍵。正確的鍵是Ctrl-n和Ctrl-p。您幾乎可以使用任何其他密鑰(如空間)來選擇並繼續輸入。

另外,如果你是不是已經在文件/目錄,你想插入,您可以按如下走下來一個文件樹結構:

  1. 可選擇進入該目錄的某些部分。例如,您甚至可以使用../../
  2. 按CTRL +XCTRL +˚F並從列表中選擇樹中的第一項。
  3. 下一步按ctrl + f同時正確的項目被突出顯示,以顯示目錄樹結構下一級的列表。

您可以繼續這樣做,直到找到想要在文檔中插入的目錄/文件。

+3

在步驟3中,您是指ctrl + x和ctrl + f?因爲只是ctrl + f不適合我,所以它和ctrl + n一樣。順便說一句,它不起作用,如果一個目錄中有空格:/。你知道一個解決方法嗎? – Rojo 2014-12-23 00:58:09

0

我遇到過類似的問題。我找到了解決方案,如:

sudo apt-get install realpath 

而在VIM naviagte在正常模式類型與到文件:

:r !realpath /path/to/file 

當你在之後的非插入模式導航realpatch您可以使用我們的關鍵按鈕。

VOILA! TAB再次開始工作!