我试图正确地使用vim --为了帮助我,我将箭头键映射为"“,这样我就不得不使用{hjlk}来移动。
当我只想用空格包围一个角色时,这给我带来了一个问题。
"2+3“更适合格式化为"2 + 3”
以前,我会把光标放在+上,然后输入:
等距空间
那是5台印刷机。
要做到这一点,不需要箭头,我似乎需要将光标放在+上,然后走:
等空间
那是8台印刷机。
我可以将"li“转换成"a”,从而将其压缩到7次:
坐骨木
除非把它写成宏,否则有更好的方法吗?有没有什么神奇的vim命令可以让我在不到5下的时间内完成它?还有某种方法来概括它,这样我就可以对整个单词或符号进行概括,例如,如果我想将3==4转换为3 == 4?
发布于 2010-03-14 11:38:18
就我个人而言,我认为最有意义的是摧毁你想要包围的东西,然后回报它。
c w "" ESC P
显然,您可以将对象和引号替换为您喜欢的任何内容。要将一个字符+更改为space+space,您可以这样做
s [space] [space] ESC P
关于+
发布于 2010-03-14 11:08:32
阅读完标题后,首先想到的是surround.vim,它是一个很好的脚本,可以按照您所描述的方式完成各种有用的事情。
为了解决您的具体问题,我可能会将光标定位在+上,并且:
sspace+space
要将3==4转换为3 == 4,我可能会将光标定位在第一个=上,并且:
伊斯帕韦。
发布于 2014-02-20 10:08:20
我也一直在想这个问题。我试过用surround.vim,但是天真的方法
S<space>
(在进行可视化选择之后)不工作,因为该空间已经被用作一个修饰符,用于将空间添加到其他周围的字符对中。S<space><cr>
在输出中添加^M。Ss
几乎可以工作,但只在前面插入一个空格。
在github上的tpope/tpope.询问之后:
S<space><space>
在视觉模式下工作。或者,在正常模式下,ysl<space><space>
只对单个字符工作。
https://stackoverflow.com/questions/2443347
复制相似问题