用于在vim中用空格包围字符的命令

Wil*_*ker 10 vi vim

我正在尝试正确使用vim - 为了帮助我,我将箭头键映射到"",以便我被迫使用{hjlk}来移动.

当我想用空格包围一个字符时,这会导致我出现问题,例如:

"2 + 3"格式更好"2 + 3"

以前我会将光标放在+上并键入:

I [空间] [右箭头] [空间] [Esc]键

这是5台印刷机.

要在没有箭头的情况下执行此操作,我似乎需要将光标放在+上并继续:

I [空间] Esc键LLI [空格] [Esc]键

那是8台印刷机.

我可以将"li"转换为"a",将其减少到7个印刷机:

I [空间] [Esc键] LA [空格] [Esc]键

如果没有将其写入宏,有没有更好的方法呢?是否有一些神奇的vim命令允许我在少于5次按下的情况下执行此操作 - 以及某种方式来概括它以便我可以对整个单词或符号执行此操作,例如,如果我想将3 == 4转换为3 == 4?

Sar*_*rah 16

就个人而言,我认为最有意义的是破坏你想要包围的东西,然后重新制作它.

c w "" ESC P
Run Code Online (Sandbox Code Playgroud)

显然,你可以用你喜欢的任何东西替换对象和引号.要改变一个字符+为[空格] + [空格],你会这样做

s [space] [space] ESC P
Run Code Online (Sandbox Code Playgroud)

在+

  • 很好 - 我仍然习惯于删除东西将它们放在粘贴缓冲区中.而且我已经使用vi 10年......这就是为什么我最终要强迫自己学习它!sed是下一个...... (2认同)

Gre*_*ill 5

在阅读完标题之后,首先想到的是surround.vim,它是一个很好的脚本,可以根据您描述的内容进行各种有用的操作.

为了解决您的具体问题,我可能会将光标定位在+和:

S [空间] + [空格] [ESC]

要将3 == 4更改为3 == 4,我可能会将光标定位在第一个=上,并且:

I [空间] [ESC] WW.