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

相关内容