sta*_*tti 35 vim plugins editor
该%关键是VIM的最好的功能之一:它可以让你从跳跃{到},[到],等等.
但是,它默认情况下不能使用引号:或者,"或者',因为开始和结束引用是相同的字符,使得实现更加困难.
想一想这个问题,我确信它应该通过计算前面引号的数量是奇数还是偶数并相应地跳到上一个或下一个引号来实现.
在我尝试自己实现它之前,我想知道某人是否已经拥有它?
Gre*_*ill 76
根据您需要的原因,可能有更好的方法来完成您正在寻找的东西.例如,如果您有以下代码:
foo(bar, "baz quux")
^
Run Code Online (Sandbox Code Playgroud)
并且您的光标恰好位于^,并且您想用其他东西替换引号内的所有内容,使用ci".这使用Vim "文本对象"更改(c)(i)引号(")内的所有内容,并将您置于插入模式,如下所示:
foo(bar, "")
^
Run Code Online (Sandbox Code Playgroud)
然后,您可以开始键入替换文本.还有许多其他文本对象对这种快捷方式非常有用.每周学习(并使用)一个新的Vim命令,您很快就会成为专家!
Ver*_*reb 32
格雷格的答案非常有用,但我也喜欢'f'和'F'命令,它们将光标向前和向后移动到命令后按下的字符.
所以按f"移动到下一个"字符,按F"移动到前一个字符.
th1*_*ey3 10
我发现这种技术对于转到非常长的带引号的字符串的开头/结尾非常有用。
vi"或视觉选择整个字符串vi'o这实际上将光标放在开始/结束引号字符旁边,但仍然感觉很有帮助。
在此处添加 Stefan 的精彩评论,对于可能错过评论的人来说,这是一个更好的选择。
如果您使用 va"(和 va'),那么它实际上也会在视觉上选择引号本身。
– Stefan van den Akker
我想扩展Greg的答案,并介绍surround.vim插件.
假设您想要修改"字符本身,而不是编辑引号的内容.假设您想要从双引号更改为单引号.
foo(bar, "baz quux")
^
Run Code Online (Sandbox Code Playgroud)
环绕声插件允许您将其更改为
foo(bar, 'baz quux')
^
Run Code Online (Sandbox Code Playgroud)
只需执行以下操作:( cs"'读作:"将周围的双引号更改为单引号").
您也可以通过运行:( ds"删除周围的双引号)来删除引号.
有一个很好的介绍环绕插件这里.