在某个单词的前面和结尾插入一些东西

insert something in front of and in end of some word

我有很多很多源代码文件,必须做很多这样的工作

  1. 找到一些短语(完全随机,必须通过人眼完成)

    例如asdf这一行printf("asdf")fdsa asdf asdf 这一行 "* fdsa asdf asdf |"

  2. 在短语前面插入${',在短语末尾插入'}

    所以printf("asdf")变成了printf("${'asdf'}")

我目前正在使用vim进行编辑,有没有插件可以让我,例如,将光标移动到asdf并按ctrl+shift+i自动插入${''} ?

我也愿意切换到具有这种功能的任何其他编辑器。

你不需要插件。一个简单的映射就足够了:

xnoremap <key> c${'<C-r>"'}<Esc>

参见 :h key-notation <key>

:substitute 命令也是一个很好的解决方案:

:%s/asdf/${&}/g

如果您想在每次替换前确认,请添加c标志-> %s/asdf/${&}/gc

除了使用内置命令的出色答案外,还有一个 "famous" 插件可用于此目的:surround plugin。它带有许多常见内容的映射,并且还可以自定义。

要定义一个ysv你包围变量)映射,只需将以下内容放入你的~/.vimrc:

let g:surround_118 = "${\r}"

118v 的代码点,参见:help surround