在 Vim 中是否有复制括号内文本的好方法?
我想复制以下代码中的参数 foo(bar).baz
:
function(foo(bar).baz)
第一次尝试:将光标放在其中一个括号上,然后将 y%
。这给了我一些额外的参数:
(foo(bar).baz)
第二次尝试:光标位于左括号上。设置标记ma
,跳转到结尾 %
然后 y`a
复制回标记。这给了我:
(foo(bar).baz
在末尾设置一个标记并走另一条路给我完全相同的结果。设置一个 在 f
上标记,然后输入 mah%y`a
does 给我 foo(bar).baz
我想要的,但也许有更简洁的东西。有没有?
I want to copy the parameters foo(bar).baz
in the following code:
function(foo(bar).baz)
First attempt: Cursor on one of the parentheses, then y%
. This gives me the parameters plus a bit extra:
(foo(bar).baz)
Second attempt: Cursor on opening parenthesis. Set a mark ma
, jump to end with%
then y`a
to copy back to the mark. This gives me:
(foo(bar).baz
Setting a mark at the end and going the other way gives me exactly the same. Setting a
mark on the f
, then typing mah%y`a
does give me the foo(bar).baz
that I want, but maybe there's something more concise. Is there?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 文本对象:
yi( (或ya( 如果您想包含括号)。
您还可以使用
"
在引号内进行操作等。有关详细信息,请参阅链接,或输入:help Vim 中的文本对象
。Use text objects:
yi( (or ya( if you want to include the parenthesis).
You can also use
"
to work inside quotes, etc. See the link for details, or type:help text-objects
in Vim.yi( 的稍短替代方案是 yib。同样,yiB 相当于 yi{ - 就我
个人而言,我通常首先执行 vib (视觉选择大括号内的文本)以确保选择所需的文本,然后是 y >
有关更多文本对象的优点,请参阅
:help text-objects
。A slightly shorter alternative to yi( is yib. Similarly yiB is equivalent to yi{ - yanks the contents inside braces.
Personally I usually do vib (visual select the text inside braces) first to make sure that the expected text is selected, followed by a y.
For more text object goodness, see
:help text-objects
.以下应该做到
Yank Inner Block
yi(
Following should do it
Yank Inner Block
yi(