
在 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
您可以使用ex
vim 附帶的 ,它是 vim 的命令列工具。
Eran的答案絕對是正確的,但我個人會使用ex -c
(vim -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。但對於更多命令,我建議創建一個文件。