在vim中,我经常需要给我的源代码标识符添加后缀,并使用“.”将其重复到其他标识符上。
例如,将以下内容转换为:
foo bar baz faz
to:
foo_old bar_old baz_old faz_old
我希望能够做到以下几点:
ea_old<ESC>w.w.w.
替代方案:
ea_old<ESC>wea_old<ESC>wea_old<ESC>wea_old<ESC>
换句话说,我想让在单词末尾添加文本的操作在历史记录中显示为可重复执行的命令。有人知道如何做吗?
我可以执行以下操作:
nmap <C-a> ea
为了在单词末尾创建一个更方便的附加方式,但它只重复了“a”。理想情况下,我希望能够重复整个“eaarbitrarytext”序列。
我已经安装了repeat.vim插件并进行了一些调整,但我不太了解vimscript的操作方法。
澄清需求:我想要能够使用任意移动命令跳转,直到光标停留在标识符的某个位置,然后按“.”重复添加后缀。上面的示例是特殊情况。
bar
、baz
和faz
。要让它都捕捉,唯一的方法是:1)匹配单词边界,或2)将你要查找的每个单词都包含在正则表达式中。解决方案1似乎不能解决OP的问题(他可能不想在每个单词中添加_old
),解决方案2会变得相当冗长。 - Tim Potec
标志进行单词边界。请参见我的编辑答案。 - Tim Pote