Vim

VIM:腳本搜尋和替換?

  • March 4, 2020

我正在切換到 Linux 並且曾經擁有 NoteTab Pro,它允許我進行腳本搜尋和替換……因為我需要多個替換序列才能達到特定的結果。我想將這些序列放入文件或宏中,以多次應用它,同時改進腳本或將其應用到多個文件。

VIM 支持這個嗎?

為什麼不試試?好吧,我在安裝之前進行了研究。:)

幾乎沒有比 Vim 更適合編寫腳本的編輯器了,所以答案是肯定的。

幾種方法是可能的:

  1. 正如@Angelo 已經回答的那樣,您可以簡單地將Vim 命令(準確地說是Ex 命令;即您在Vim 中鍵入:並結束的任何內容<Enter>)放在一個scriptname.vim文件中,然後:source path/to/scriptname.vim載入並執行它們。這裡的好處是您可以保持腳本打開,進行編輯並保留,然後可以立即重新執行它。另一方面,呼叫不是很短,也不是很好,這也不能很好地擴展。(您可以:source從一個腳本中提取另一個腳本,但這真的很難看。)
  2. 作為替代方案,您可以跳過外部文件,只需將命令放入寄存器 ( :help quote_alpha)。您可以將寄存器粘貼到暫存緩衝區中,進行編輯,然後將其拉回(複製)到寄存器中,然後使用:@. 命名寄存器通常會在會話中自動保存,但您也可以將它們放入您的.vimrc(請參閱下一個)以防止宏被覆蓋。
  3. 最常見的方法是製作新的自定義映射命令映射由短擊鍵呼叫,並與 Vim 的模式編輯保持一致(因此相同的鍵可以根據模式執行不同的操作);這些用於經常做的事情。命令是 Ex 命令,因此鍵入時間較長,但您將在 Vim 的命令行上完成。:help usr_40.txt有關如何編寫映射和命令的詳細說明,請參閱。您通常將它們放入您的中央配置文件中,~/.vimrc, 然後它們在啟動 Vim 後立即可用。與以前的方法相比,映射和命令可以無縫地融入 Vim 並且可以很容易地呼叫,因此這些對於您將來會一次又一次地需要的東西來說非常有用。缺點是編輯和重新載入更複雜(重新啟動 Vim 需要時間,重新載入到目前會話需要更多的努力)。
  4. 如果您的擴展通常有用,您可以將它們變成一個外掛 ( :help write-plugin),然後可以輕鬆地在 Vim 安裝之間共享、發布(在 GitHub 或vim.org上)。有大量可用的外掛;所以在重新發明輪子之前先搜尋一下!

引用自:https://unix.stackexchange.com/questions/567825