![]() |
1
14
您可以将公共任务宏存储在.vim文件中,例如 this 例如,然后可以使用命令加载它们 所以文件vim Here 你可以找到一堆有用的宏,我也建议你好好学习有用的 Q macro recording 命令,它非常强大… 使用创建的宏 Q 命令存储在寄存器中,q q将宏存储在q寄存器中,因此当您结束录制时,只需粘贴宏, “QP 然后保存它,稍后您可以通过简单地将宏拉入寄存器来加载它,即: “QY” ,宏只是文本,记住您可以使用任何寄存器而不是Q。有一个VIM脚本用于存储 Q 宏指令: marvim : Macro Persistent Storage and Shareable Repository for VIM 也可以看看 Vim Scripting Language . |
![]() |
2
3
我用
下一步是尝试写入3个或更少的ex命令。 如果一个宏或简短的ex序列都不够复杂,那么我倾向于将其编写为Perl脚本。VIM脚本语言有点太有限了,我不想尝试在里面做大事。(尽管Vim7在这方面取得了巨大的进步,但它从Python中借用了大量的东西。)
注意
|
![]() |
3
2
可以将命令序列存储在
按压时
在命令行上,可以通过对文件应用非常相同的编辑(这将覆盖,请确保先备份):
也许有更好的方法,但这是可行的。 |
![]() |
4
1
就我个人而言,可能部分是因为我在Vim存在之前就在使用Unix(Heck,我使用的第一个Unix版本也没有“vi”-但这是另一个故事),我通常会使用“shell脚本”(或者更可能是Perl脚本)来进行转换。对于将csv数据转换为insert,完全通用性地处理引号/非引号和嵌入逗号是很麻烦的——我可能打算使用带有text::csv_xs的Perl脚本来保证正确的解析。然后在需要转换的文本范围内运行该脚本。 这种方法的一个优点是聚焦工具方法——一个工具可以正确地完成一项工作。我的私有bin目录中有300个或更多的脚本和程序;rcs目录中有500多个脚本。 这并不是说VIM中的脚本编写不好。我使用(或多或少)复杂的map命令来编写复杂的操作,通常是在我要对一组文件进行相同的更改时,以及在我认为不值得为该工作创建脚本时。但是,如果我认为我可能需要这些更改不止一次,那么我将编写脚本。例如,gcc开始对不在对象文件中嵌入未使用的静态字符串感到骄傲(大约在2005年),这意味着我的版本控制信息不可见。因此,在多年的时间里,当我编辑源文件时,我已经从一个静态(固定)名称转换为一个公共名称——不情愿地,但必然是阿法亚。我有一个脚本可以为我进行编辑,所以当我需要在文件中进行更改时,我会运行该脚本来进行编辑。我有另一个脚本来更新版权信息;我需要在给定的一年中,每次我第一次修改一个文件时都更新这个脚本。是的,我可能会把它藏在Vim中——我从小就认为单独的脚本更好,尤其是因为如果我切换到任何其他编辑器,我仍然可以使用该脚本。 |
![]() |
Ben · bash脚本中的VSCode CLI while循环打开多个文件 12 月前 |
![]() |
Amit Eshel · 用于将多行Bash脚本转换为单行的工具 1 年前 |
![]() |
soccerway · 如何在CI中运行时记录剧作家测试的详细输出日志 1 年前 |