Vim 如何将光标移动到字符串的末尾?
How do you move the cursor to the end of a string in Vim?
假设我正在 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 string 的末尾,封装在单引号中。 (我知道我可以用 /'h
来做到这一点,但我想知道是否有更通用的命令——也许像 %
。)
使用 e 到 Gregor 的末尾,使用 $ 到行的末尾。
有 vi'<Esc>
,它进入可视化模式,选择包括当前字符串的内部,光标位于选择的末尾 - 然后离开可视模式。
不知道有没有更好的办法
最简单的方法是t'
,但这仅在字符串在同一行结束并且字符串中没有转义引号时才有效。
实现这一点的最干净方法就像@hobbs已经指出的那样使用视觉模式select整个(内部)文本对象(vi'<Esc>
).使用 o
(在点击 <Esc>
之前)您还可以切换此 selection 的结尾。
您可以为此使用映射,例如:
:noremap [ vi'o<Esc>
:noremap ] vi'<Esc>
最后还有一个来自 Tom McDonald 的插件 (https://github.com/tommcdo/vim-ninja-feet) 可以完全解决您的问题。
我认为最简单的方法就是 f'
,因为在这个标签之前我们几乎看不到另一个 '
。它更方便,尽管不像 %
用于 (
和 {
。
假设我正在 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 string 的末尾,封装在单引号中。 (我知道我可以用 /'h
来做到这一点,但我想知道是否有更通用的命令——也许像 %
。)
使用 e 到 Gregor 的末尾,使用 $ 到行的末尾。
有 vi'<Esc>
,它进入可视化模式,选择包括当前字符串的内部,光标位于选择的末尾 - 然后离开可视模式。
不知道有没有更好的办法
最简单的方法是t'
,但这仅在字符串在同一行结束并且字符串中没有转义引号时才有效。
实现这一点的最干净方法就像@hobbs已经指出的那样使用视觉模式select整个(内部)文本对象(vi'<Esc>
).使用 o
(在点击 <Esc>
之前)您还可以切换此 selection 的结尾。
您可以为此使用映射,例如:
:noremap [ vi'o<Esc>
:noremap ] vi'<Esc>
最后还有一个来自 Tom McDonald 的插件 (https://github.com/tommcdo/vim-ninja-feet) 可以完全解决您的问题。
我认为最简单的方法就是 f'
,因为在这个标签之前我们几乎看不到另一个 '
。它更方便,尽管不像 %
用于 (
和 {
。