Nvim 的 :help
頁面,由 產生,使用 原始碼 和 tree-sitter-vimdoc 解析器。
:%s/four/4/g"%" 範圍表示在所有行中取代。結尾的 "g" 旗標會導致一行中的所有單字都被取代。如果您的檔案也包含 "thirtyfour",這將無法正確運作,它會被取代為 "thirty4"。為了避免這種情況,請使用 "\<" 項目來匹配單字的開頭
:%s/\<four/4/g顯然,這在 "fourteen" 上仍然會出錯。使用 "\>" 來匹配單字的結尾
:%s/\<four\>/4/g如果您正在程式設計,您可能想要取代註解中的 "four",但不取代程式碼中的 "four"。由於這很難指定,請加入 "c" 旗標,讓 substitute 指令提示您進行每個取代
:%s/\<four\>/4/gc
*.cpp
啟動 Vim,定義參數列表以包含所有 C++ 檔案。您現在位於第一個檔案中。qq 開始錄製到 q 暫存器 :%s/\<GetResp\>/GetAnswer/g 在第一個檔案中進行取代。 :wnext 寫入此檔案並移動到下一個檔案。 q 停止錄製。 @q 執行 q 暫存器。這將重播取代和 ":wnext"。您可以驗證這不會產生錯誤訊息。 999@q 在剩餘的檔案上執行 q 暫存器。:%s/\<GetResp\>/GetAnswer/ge"e" 旗標告訴 ":substitute" 找不到匹配不是錯誤。
:%s/\([^,]*\), \(.*\)/\2 \1/讓我們將其分解為幾個部分。顯然,它從 substitute 指令開始。"%" 是行範圍,代表整個檔案。因此,取代會在檔案中的每一行執行。substitute 指令的參數為 "/from/to/"。斜線分隔 "from" 模式和 "to" 字串。以下是 "from" 模式包含的內容
/^OBJS j :.,/^$/-1!sort這會移至第一行,其中 "OBJS" 是該行的第一個內容。然後它會向下移動一行並篩選行,直到下一個空行為止。您也可以在 Visual 模式中選取行,然後使用 "!sort"。這更容易輸入,但是當行數很多時,會需要更多工作。結果如下
:global/^/move 0縮寫形式
:g/^/m 0"^" 正規表示式匹配行的開頭(即使該行為空白)。:move 指令將匹配的行移動到虛擬的第零行之後,因此當前匹配的行將成為檔案的第一行。由於 :global 指令不會被更改的行號混淆,因此 :global 會繼續匹配檔案的所有剩餘行,並將每一行放在最前面。
:'t+1,.g/^/m 't
g CTRL-G請勿在 g 之後輸入空格,這裡只是為了讓指令易於閱讀。輸出如下所示
CTRL-G
",移動到文字的結尾,再次輸入 "g CTRL-G
",然後用您的腦袋計算單字位置的差異。這是一個很好的練習,但是有一種更簡單的方法。在 Visual 模式下,選取您要計算單字數量的文字。然後輸入 g CTRL-G
。結果KNvim 將對該單字執行 :Man。如果找到 man page,則會顯示它。您也可以使用 :Man 指令在 man page 上開啟一個視窗
:Man csh您可以四處捲動,並且文字會被突出顯示。這可讓您找到您要尋找的說明文字。使用
CTRL-W
w 跳至您正在工作的文字所在的視窗。若要在特定章節中尋找 man page,請先輸入章節編號。例如,若要查看第 3 章中關於 "echo" 的說明:Man 3 echo若要跳至另一個 man page,該頁面中的文字格式通常為 "word(1)",請在其上按
CTRL-]
。其他 ":Man" 指令將使用相同的視窗。K例如,您想知道編輯此行時 "strstr()" 的傳回值
:%s/\s\+$//使用行範圍 "%",因此這適用於整個檔案。":substitute" 指令匹配的模式是 "\s\+$"。這會尋找行尾 ($) 之前的一個或多個 (\+) 空白字元 (\s)。稍後將說明如何撰寫類似這樣的模式,請參閱 usr_27.txt。substitute 指令的 "to" 部分為空白:"//"。因此,它會取代為無,實際上是刪除匹配的空白。
/您看不到,但是此指令中在定位字元之前有一個空格。因此,它是 "/<Space><Tab>"。現在使用 "x" 刪除空格,並檢查空白的數量是否沒有改變。如果確實改變了,您可能需要插入一個定位字元。輸入 "n" 以尋找下一個匹配項。重複此步驟,直到找不到更多匹配項。
vim `grep -l frame_counter *.c`讓我們詳細看看這個指令。grep 指令會在檔案集合中搜尋指定的字詞。由於指定了 -l 參數,該指令只會列出包含該字詞的檔案,而不會印出符合的行。它搜尋的字詞是 "frame_counter"。實際上,這可以是任何正規表示式。(注意: grep 使用的正規表示式與 Vim 使用的正規表示式並不完全相同。)整個指令都用反引號 (`) 包圍。這會告訴 Unix shell 執行這個指令,並假裝結果是在命令列上輸入的。因此,grep 指令會執行並產生一個檔案列表,這些檔案會被放到 Vim 的命令列上。這會導致 Vim 編輯 grep 輸出的檔案列表。然後,您可以使用 ":next" 和 ":first" 等指令來瀏覽這些檔案。
:grep error_string *.c這會使 Vim 在所有指定的檔案 (
*.c
) 中搜尋字串 "error_string"。編輯器現在會開啟第一個找到匹配項的檔案,並將游標定位在第一個匹配行上。要跳到下一個匹配行(無論它在哪個檔案中),請使用 ":cnext" 指令。要跳到上一個匹配項,請使用 ":cprev" 指令。使用 ":clist" 來查看所有匹配項及其位置。":grep" 指令使用外部指令 grep (在 Unix 上) 或 findstr (在 Windows 上)。您可以透過設定選項 'grepprg' 來更改此設定。