Nvim 的 :help
頁面,由 產生,來源是 原始碼,使用 tree-sitter-vimdoc 解析器。
<BS>
鍵。這會刪除游標前的字元。要刪除更早輸入的其他字元,請先使用游標鍵移動游標。例如,您輸入了以下內容:s/col/pig/在您按下
<Enter>
之前,您注意到 "col" 應該是 "cow"。要更正此錯誤,請輸入 <Left>
五次。現在游標位於 "col" 之後。輸入 <BS>
和 "w" 進行更正:s/cow/pig/現在您可以直接按下
<Enter>
。您不必在執行指令之前將游標移動到行尾。<Left>
向左移動一個字元 <Right>
向右移動一個字元 <S-Left>
或 <C-Left>
向左移動一個單字 <S-Right>
或 <C-Right>
向右移動一個單字 CTRL-B
或 <Home>
移動到命令列的開頭 CTRL-E
或 <End>
移動到命令列的結尾<S-Left>
(按下 Shift 鍵的游標向左鍵)和 <C-Left>
(按下 Control 鍵的游標向左鍵)並非在所有鍵盤上都能運作。其他 Shift 和 Control 組合也是如此。<BS>
會刪除游標前的字元。要刪除整個單字,請使用 CTRL-W
。CTRL-W
<Insert>
鍵會在插入字元和取代現有字元之間切換。從這段文字開始<S-Left>
兩次(或 <Left>
八次,如果 <S-Left>
無法運作)將游標移動到 "fine" 的開頭。現在按下 <Insert>
切換到覆寫模式,然後輸入 "great"<BS>
,因為它會刪除 "t"(這與取代模式不同)。相反,按下 <Insert>
從覆寫模式切換到插入模式,然後輸入空格CTRL-C
或 <Esc>
。<Esc>
是通用的「退出」鍵。不幸的是,在古老的 Vi 中,在命令列中按下 <Esc>
會執行指令!由於這可能被視為一個錯誤,Vim 使用 <Esc>
來取消指令。但是透過 'cpoptions' 選項,可以使其與 Vi 相容。而且當使用映射(可能是為 Vi 編寫的)時,<Esc>
也會以 Vi 相容的方式運作。因此,使用 CTRL-C
是一種始終有效的方法。<BS>
將會取消指令。就像刪除行首的 ":" 或 "/" 一樣。:s[ubstitute]這表示 ":substitute" 的最短形式是 ":s"。後面的字元是可選的。因此,":su" 和 ":sub" 也有效。
:set autoindent :set ai您可以在此處找到長短名稱的完整列表:option-list。
:edit bodyofthepaper.txt很容易輸入錯誤。一種更快速的方法是
:edit b<Tab>這將產生相同的指令。發生了什麼事?
<Tab>
鍵會自動完成游標前的單字。在此情況下為 "b"。Vim 會在目錄中尋找,而且只會找到一個以 "b" 開頭的檔案。這一定是您要尋找的檔案,因此 Vim 會為您完成檔案名稱。:edit i<Tab>Vim 會發出嗶聲,並提供您
:edit info.txt嗶聲表示 Vim 找到了多個相符項目。然後它會使用它找到的第一個相符項目(依字母順序排列)。如果您再次按下
<Tab>
,您將會看到:edit intro.txt因此,如果第一個
<Tab>
沒有給您您要尋找的檔案,請再次按下。如果有更多相符項目,您將會一次看到它們全部,一次一個。如果您在最後一個相符項目上按下 <Tab>
,您將會回到您第一次輸入的內容:edit i然後它會重新開始。因此,Vim 會循環瀏覽相符項目的清單。使用
CTRL-P
以相反的方向瀏覽清單<Tab>
-------------------------+ | <Tab>
--> <Tab>
--> :edit i :edit info.txt :edit intro.txt <-- CTRL-P
<-- CTRL-P
| +---------------------- CTRL-P
------------------------><Tab>
時,您會得到:set icon嘿,為什麼您沒有得到 ":set info.txt"?這是因為 Vim 具有內容敏感的自動完成功能。Vim 將尋找的單字種類取決於它之前的指令。Vim 知道您不能在 ":set" 指令之後使用檔案名稱,但可以使用選項名稱。同樣,如果您重複輸入
<Tab>
,Vim 將會循環瀏覽所有相符項目。相符項目相當多,最好先輸入更多字元:set isk<Tab>會給出
:set iskeyword現在輸入 "=" 並按下
<Tab>
:set iskeyword=@,48-57,_,192-255這裡發生的情況是,Vim 會插入選項的舊值。現在您可以編輯它。使用
<Tab>
自動完成的內容是 Vim 在該位置預期的內容。只要嘗試一下,看看它是如何運作的。在某些情況下,您不會得到您想要的結果。這可能是因為 Vim 不知道您想要什麼,或者因為該情況未實作自動完成功能。在這種情況下,您會插入一個 <Tab>
(顯示為 ^I)。CTRL-D
來完成此操作。例如,在:set is之後按下
CTRL-D
會產生:set is incsearch isfname isident iskeyword isprint :set isVim 會列出相符項目,然後會返回您輸入的文字。您現在可以檢查清單中您要尋找的項目。如果它不在那裡,您可以使用
<BS>
來更正單字。如果有很多相符項目,請在按下 <Tab>
完成剩餘部分之前輸入更多字元。如果您仔細觀察,您會注意到 "incsearch" 不是以 "is" 開頭。在這種情況下,"is" 代表 "incsearch" 的短名稱。(許多選項都有短名稱和長名稱。)Vim 很聰明,知道您可能想將選項的短名稱展開為長名稱。CTRL-L
指令會將單字自動完成為最長的不模糊字串。如果您輸入 ":edit i",而且有檔案 "info.txt" 和 "info_backup.txt",您將會得到 ":edit info"。<Up>
鍵來回溯較舊的命令列。然後 <Down>
會帶您回到較新的指令。<Up>
。有一種更快速的方法:se<Up>Vim 現在會回到上一個以 "se" 開頭的指令。您很有機會這就是您要尋找的 ":set" 指令。至少您應該不必經常按下
<Up>
(除非您所做的都是 ":set" 指令)。<Up>
鍵會使用目前輸入的文字,並與歷史紀錄中的行進行比較。只會使用符合的行。如果您找不到您要尋找的行,請使用 <Down>
回到您輸入的內容並進行更正。或使用 CTRL-U
從頭開始。:history那是「:」指令的歷史紀錄。搜尋歷史紀錄會透過這個指令顯示
:history /
CTRL-P
的作用類似於 <Up>
,但它不考慮您已經輸入的內容。CTRL-N
的作用也類似於 <Down>
。CTRL-P
代表「上一個」(previous),CTRL-N
代表「下一個」(next)。q:Vim 現在會在底部開啟一個(小的)視窗。它包含命令列歷史紀錄,以及最後一個空白行
+-------------------------------------+ |other window | |~ | |file.txt=============================| |:e c | |:e config.h.in | |:set path=.,/usr/include,, | |:set iskeyword=@,48-57,_,192-255 | |:set is | |:q | |: | |command-line=========================| | | +-------------------------------------+
<Enter>
,這個指令將會執行。命令列視窗將會關閉。<Enter>
指令將會執行游標下的那一行。無論 Vim 處於插入模式還是普通模式,這都無關緊要。在命令列視窗中所做的變更會遺失。它們不會導致歷史紀錄被變更。除了您執行的指令會像所有執行過的指令一樣,被添加到歷史紀錄的末尾。