如何在Vim中将光标移动到字符串的末尾?

3
假设我正在使用Vim编辑JavaScript中的这一行代码:
var opener = 'As Gregor Samsa awoke one morning from uneasy dreams he found himself transformed in his bed into a gigantic insect';

如果我的光标在“Gregor”中的“G”上,如何将其移动到“insect”中的“t”? 我不是指移动到“行”的结尾,而是指移动到用单引号括起来的JavaScript字符串的末尾。(我知道可以使用/'h,但我想知道是否有更通用的命令-也许像%一样的东西。)

可能是一个重复的问题:如何在vim中移动到行尾 - James Oravec
https://dev59.com/j3VD5IYBdhLWcg3wDXF3 - James Oravec
1
你误读了问题。我已经编辑过它以强调我是在谈论移动到字符串的末尾,而不是行的末尾。 - Joe Mornin
按下 Esc 键,输入 /',然后按下回车键,即可进入命令模式。在命令模式下搜索下一个 ',然后返回编辑模式。 - James Oravec
4个回答

5

有一个命令vi'<Esc>,它可以进入可视模式并选择当前字符串的内部作为选择区域,光标位于选择区域的末尾。然后退出可视模式。

我不确定是否有更好的方法。


2
最简单的方法是使用t',但这只适用于字符串在同一行结束且字符串中没有转义引号。
最干净的方法是像@hobbs已经指出的那样使用可视模式选择整个(内部)文本对象(vi'<Esc>)。使用o(在按下<Esc>之前)也可以切换此选择的结尾。
您可以使用映射来实现此目的,例如: :noremap [ vi'o<Esc> :noremap ] vi'<Esc> 最后,有一个插件(https://github.com/tommcdo/vim-ninja-feet),由Tom McDonald处理您的问题。

0

我认为最简单的方法就是使用f',因为在这个标签之前几乎不会再出现另一个'。虽然不像%对于({那样方便,但它更加方便。


-1

在 Gregor 的末尾使用 e,行末使用 $。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接