在 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。但对于更多命令,我建议创建一个文件。