從 bash 腳本內部執行 vim 宏

從 bash 腳本內部執行 vim 宏

在 bash 腳本中我想編輯一個檔案。有沒有辦法在vim中編寫宏,保存然後在bash腳本中調用它?

答案1

沒問題:使用 vi 指令建立巨集檔案。例如:

:1,$s/a/b/g
:wq

然後運行vi -s macro_file data_file

一個建議:嘗試使用sed/awk和 而不是vi用於此目的

答案2

這是使用 vim 建立檔案的 HTML 版本的範例:

for f in *.c; do
    vim -f +"syn on" +"run! syntax/2html.vim" +"wq" +"q" "$f"
done

答案3

您可以使用exvim 附帶的 ,它是 vim 的命令列工具。

Eran的答案絕對是正確的,但我個人會使用ex -cvim -c也是可能的):

> echo asdf > blub
> ex blub -c "normal a_" -c "normal l.l.l." -c wq
> cat blub
a_s_d_f_

這是我的首選方式,因為沒有多個文件。

如果將 escape 重新對應到 jj (例如),您可以輕鬆地做出更複雜的普通語句:

ex file -c "normal a_jjl.l.l." -c wq

供你參考:

  • 普通的以正常模式發送信件至
  • 瓦克退出程序
  • 若要在一個字串中傳送多個命令(無需附加 -c 選項),請使用管道字元 |。但是:這在正常情況下不起作用。
  • 這僅適用於 10 -c。但對於更多命令,我建議創建一個文件。

相關內容