Nvim 的 :help
頁面,使用 tree-sitter-vimdoc 解析器,從 來源 產生 而來。
:s/2001/2002/g現在使用 "gv" 重新選取相同的文字。游標在哪裡並不重要。然後使用 ":s/2000/2001/g" 進行第二次變更。顯然,您可以重複這些變更多次。
CTRL-A
命令,而不用為每個出現的年份輸入替代命令。使用與上面相同的文字,搜尋一個年份/19[0-9][0-9]\|20[0-9][0-9]現在按下
CTRL-A
。年份將會增加一CTRL-A
("." 輸入速度會快一點)。為所有出現的年份重複 "n" 和 "."。CTRL-A
前面加上數字。假設您有這個清單3 CTRL-A"1." 將會變更為 "4."。同樣地,您可以使用 "." 在其他數字上重複此操作。
CTRL-X
命令以類似的方式執行減法。CTRL-A
和 CTRL-X
的行為取決於 'nrformats' 的值。例如,如果您使用:set nrformats+=octal在 "007" 上按下
CTRL-A
會增加到 "010",因為 "007" 將被識別為八進制數字。:args *.c
:argdo %s/\<x_cnt\>/x_counter/ge | update":argdo" 命令會採用一個引數,該引數是另一個命令。該命令將在引數清單中的所有檔案上執行。接下來的 "%s" 替代命令適用於所有行。它會使用 "\<x_cnt\>" 尋找單字 "x_cnt"。"\"<" 和 "\>" 用於僅比對整個單字,而不是 "px_cnt" 或 "x_cnt2"。替代命令的旗標包括 "g" 以取代同一行中 "x_cnt" 的所有出現位置。"e" 旗標用於避免當檔案中未出現 "x_cnt" 時出現錯誤訊息。否則,如果沒有找到 "x_cnt",":argdo" 將在第一個檔案上中止。"|" 分隔兩個命令。以下的 "update" 命令僅在檔案變更時寫入檔案。如果沒有將 "x_cnt" 變更為 "x_counter",則不會發生任何事情。
%s/-person-/Jones/g write tempfile quit將這些命令放入 "change.vim" 檔案中。現在要以批次模式執行編輯器,請使用此 shell 腳本
for file in *.txt; do vim -e -s $file < change.vim lpr -r tempfile donefor-done 迴圈是一個 shell 結構,用於重複兩行之間的操作,而 $file 變數會每次設定為不同的檔案名稱。第二行在檔案 $file 上以 Ex 模式 (-e 引數) 執行 Vim 編輯器,並從 "change.vim" 檔案讀取命令。-s 引數會告知 Vim 在靜音模式下運作。換句話說,不要持續輸出 :prompt 或任何其他提示。 "lpr -r tempfile" 命令會列印產生的 "tempfile" 並刪除它 (這就是 -r 引數的作用)。
ls | vim -這允許您編輯 "ls" 命令的輸出,而無需先將文字儲存到檔案中。如果您使用標準輸入來讀取文字,則可以使用 "-S" 引數來讀取腳本
producer | vim -S change.vim -
vim -s script file.txt ...
<Enter>
。在一般模式中,這會將游標移到下一行。若要建立腳本,您可以編輯腳本檔案並輸入命令。您需要想像結果會是什麼,這可能有點困難。另一種方法是在您手動執行命令時錄製命令。以下是您的做法vim -w script file.txt ...所有輸入的按鍵都會寫入 "script"。如果您犯了一個小錯誤,您可以繼續,並記得稍後編輯腳本。"-w" 引數會附加到現有的腳本。當您想要一點一點地錄製腳本時,這很有用。如果您想要從頭開始並重新開始,請使用 "-W" 引數。它會覆寫任何現有檔案。