Nvim 的 :help
頁面,使用 tree-sitter-vimdoc 解析器,從 原始碼 產生。
:edit foo.txt您可以使用任何檔案名稱代替 "foo.txt"。Vim 將關閉目前檔案並開啟新檔案。但是,如果目前檔案有未儲存的變更,Vim 會顯示錯誤訊息並且不會開啟新檔案
:help E37此時,您有許多替代方案。您可以使用此命令寫入檔案
:write或者您可以強制 Vim 捨棄您的變更並編輯新檔案,使用強制 (!) 字元
:edit! foo.txt如果您想編輯另一個檔案,但還不想寫入目前檔案中的變更,您可以將其隱藏
:hide edit foo.txt帶有變更的文字仍然存在,但您看不到它。這在 22.4 節:緩衝區列表中有更詳細的說明。
vim one.c two.c three.c此命令會啟動 Vim 並告知您將編輯三個檔案。Vim 只會顯示第一個檔案。當您在這個檔案中完成操作後,要編輯下一個檔案,請使用此命令
:next如果目前檔案中有未儲存的變更,您將會收到錯誤訊息,並且 ":next" 將無法運作。這與上一節中提到的 ":edit" 的問題相同。要放棄變更
:next!但大多數時候您都希望儲存變更並繼續處理下一個檔案。有一個特殊的命令可以做到這一點
:wnext這與使用兩個單獨的命令相同
:write :next我在哪裡?
:args這是 "arguments" 的縮寫。輸出可能如下所示
:previous這與 ":next" 命令類似,只是它往反方向移動。同樣,當您想要先寫入檔案時,有一個快捷命令
:wprevious要移動到列表中的最後一個檔案
:last然後再移動回第一個
:first但是沒有 ":wlast" 或 ":wfirst" 命令!
:2next
:set autowrite當您正在編輯可能不想寫入的檔案時,請再次關閉它
:set noautowrite
:args five.c six.c seven.h或者使用萬用字元,就像在 shell 中使用的一樣
:args *.txtVim 會將您帶到列表中的第一個檔案。同樣,如果目前檔案有變更,您可以先寫入檔案,或者使用 ":args!" (加上 !) 來放棄變更。
CTRL-^
(在英文-美國鍵盤上,^ 位於 6 鍵上方)。範例:args one.c two.c three.c您現在位於 one.c 中。
:next現在您位於 two.c 中。現在使用
CTRL-^
返回 one.c。另一個 CTRL-^
,您又回到 two.c。再一個 CTRL-^
,您又回到 one.c。如果您現在執行:next您位於 three.c 中。請注意,
CTRL-^
命令不會改變您在檔案列表中位置的想法。只有像 ":next" 和 ":previous" 這樣的命令才會這樣做。CTRL-^
將無法運作,因為沒有先前的檔案。`"這會將您帶到離開檔案時游標所在的位置。另一個被記住的標記是您進行上次變更的位置
`.假設您正在編輯檔案「one.txt」。在檔案的中途,您使用 "x" 刪除一個字元。然後您使用 "G" 到最後一行,並使用 ":w" 寫入檔案。您編輯了其他幾個檔案,然後使用 ":edit one.txt" 返回 "one.txt"。如果您現在使用 " Vim 跳到檔案的最後一行。使用 . 會將您帶到刪除該字元的位置。即使您在檔案中移動,
"
和 .
也會將您帶到記住的位置。至少在您進行另一次變更或離開檔案之前。50%mF現在編輯檔案 "bar.txt" 並在其最後一行放置 B 標記 (B 代表 bar)
GmB現在您可以使用 "'F" 命令跳回 foo.txt 的一半。或者編輯另一個檔案,輸入 "'B",您會跳到 bar.txt 的末尾。
:marks M您也可以提供多個引數
:marks MCP別忘了您可以使用
CTRL-O
和 CTRL-I
跳到較舊和較新的位置,而無需在那裡放置標記。:set backup備份檔案的名稱是原始檔案的名稱,並在結尾加上 ~。例如,如果您的檔案名為 data.txt,則備份檔案名為 data.txt~。如果您不喜歡備份檔案以 ~ 結尾的事實,您可以變更副檔名
:set backupext=.bak這將使用 data.txt.bak 而不是 data.txt~。這裡另一個重要的選項是 'backupdir'。它指定備份檔案的寫入位置。預設值是在與原始檔案相同的目錄中寫入備份檔案,這通常是正確的選擇。
:set patchmode=.orig當您現在第一次編輯檔案 data.txt,進行變更並寫入檔案時,Vim 會將未變更的檔案副本保留在名稱 "data.txt.orig" 下。如果您對檔案進行進一步的變更,Vim 會注意到 "data.txt.orig" 已經存在並且不理會它。然後,進一步的備份檔案將被稱為 "data.txt~" (或您使用 'backupext' 指定的任何名稱)。如果您將 'patchmode' 留空 (那是預設值),則不會保留原始檔案。
:edit thisfile /This vjjjj$y現在編輯您要放入文字的檔案。將游標移動到您希望文字出現在後面的字元。使用 "p" 將文字放在那裡。
:edit otherfile /There p當然,您可以使用許多其他命令來提取文字。例如,要選取整行,請使用 "V" 啟動視覺模式。或者使用
CTRL-V
選取矩形區塊。或者使用 "yy" 提取單行,使用 "yaw" 提取一個單字等等。"p" 命令會將文字放在游標之後。使用 "P" 將文字放在游標之前。請注意,Vim 會記住您是否提取了整行或區塊,並以該方式放回去。"fyas「yas」指令像之前一樣複製一句話。是「"f」告訴 Vim 文字應該被放置在 f 暫存器中。這必須在複製指令之前。現在將三整行複製到 l 暫存器(l 代表 line)。
"l3yy計數也可以放在「"l」之前。要將一段文字複製到 b 暫存器(b 代表 block)。
CTRL-Vjjww"by請注意,暫存器指定「"b」就在「y」指令之前。這是必要的。如果您將它放在「w」指令之前,它將不會起作用。現在您在 f、l 和 b 暫存器中有三段文字。編輯另一個檔案,移動並將文字放置在您想要的位置。
"fp同樣地,暫存器指定「"f」在「p」指令之前。您可以按任何順序放置暫存器。而且文字會留在暫存器中,直到您將其他東西複製到其中。因此,您可以多次放置它。
"wdaw同樣地,暫存器指定在刪除指令「d」之前。
:write >> logfile這會將目前檔案的文字寫入「logfile」的末尾。因此它是附加的。這避免了您必須複製行、編輯記錄檔並將它們放在那裡。因此,您可以節省兩個步驟。但是您只能附加到檔案的末尾。要僅附加幾行,請在輸入「:write」之前在視覺模式中選擇它們。在第 10 章中,您將學習選擇一系列行的其他方法。
vim -R file在 Unix 上,此指令應該執行相同的操作。
view file您現在以唯讀模式編輯「file」。當您嘗試使用「:w」時,您會收到錯誤訊息,並且檔案不會被寫入。當您嘗試對檔案進行變更時,Vim 會發出警告。
vim -M file現在每次嘗試變更文字都會失敗。例如,說明檔案就是這樣。如果您嘗試進行變更,您會收到此錯誤訊息。
:set modifiable :set write
:edit copy.c您可以刪除您不需要的內容。現在您需要以新名稱儲存檔案。可以使用「:saveas」指令來執行此操作。
:saveas move.cVim 會以給定的名稱寫入檔案,並編輯該檔案。因此,下次您執行「:write」時,它會寫入「move.c」。「copy.c」保持未修改。當您想要變更正在編輯的檔案名稱,但不想寫入檔案時,可以使用此指令。
:file move.cVim 會將檔案標記為「未編輯」。這表示 Vim 知道這不是您開始編輯的檔案。當您嘗試寫入檔案時,您可能會收到此訊息。