在 Vim 中是否有复制括号内文本的好方法?

发布于 2024-11-05 12:39:13 字数 482 浏览 4 评论 0原文

我想复制以下代码中的参数 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

十雾 2024-11-12 12:39:13

使用 文本对象:

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.

南薇 2024-11-12 12:39:13

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.

野却迷人 2024-11-12 12:39:13

以下应该做到

Yank Inner Block

yi(

Following should do it

Yank Inner Block

yi(

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文