我目前正在学习用 Vim 编程,我决定制作一个宏来快速编译和运行一段 C 代码,所以我这样做了:
save quickrun.c
!gcc quickrun.c -o quickrun
!quickrun
它按预期工作,没有问题,但后来我尝试将宏保存在 _vimrc 文件中,并且我只用一个命令使用“let”保存其他宏没有问题,比如
let @a = '!gcc file.c'
但是我想把这3条命令都保存下来,以便在宏中编译运行,我该怎么做呢?
最佳答案
将一系列命令永久放入寄存器是一个非常奇怪的想法。通常,人们使用寄存器通过从某些脚本中提取部分代码或通过使用 q
记录键序列来即时构建命令。问题是您只有 26 个具有固定名称的插槽,这对于存储通用命令序列非常不方便。
更常见的解决方案是设置用户命令或映射(或两者)。你可以像这样在你的 vimrc 中定义一个命令(它必须以大写字母开头!):
command! QRun save quickrun.c | !gcc quickrun.c -o quickrun | !quickrun
竖线符号 (|) 是 Vim 脚本中的命令分隔符,即它也允许在交互模式下使用。之后,您可以像执行其他命令一样执行您的命令::QRun
。如果您觉得“QRun”太难打字,您可以额外定义一个按键映射,以节省几次击键。
此外,您可能应该修改您的脚本以使用参数,并摆脱“另存为”以支持简单的“更新”,等等。
关于vim - 如何使用 let 保存包含多个命令的宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57454486/