在vim中一次视觉选择两个东西

Posted

技术标签:

【中文标题】在vim中一次视觉选择两个东西【英文标题】:Visually Select two things at once in vim 【发布时间】:2016-04-05 21:57:24 【问题描述】:

假设我有这样一行文字

Hello World "How are you" World

现在,我想知道,是否有办法一次选择引号之外的所有内容?所以,我期待这样的事情,其中​​粗体文本是选择

Hello World“你好吗”世界

我知道这是可能的,但我无法找到完成此任务的方法。 我正在考虑做一些事情,比如单独选择两个部分并以某种方式加入它们。

我的目标是能够创建一个动作,该动作可以删除除 " 或 ' 之间的内容之外的所有内容,作为运算符待定动作。因此,操作可以是删除、拉动或剪切/更改。那么,有没有有没有其他方法可以解决同样的问题?

【问题讨论】:

【参考方案1】:

这是不可能的。在 Vim 中,一次只能有一个选择,尽管有一个插件 multiselect 声称可以做你想做的事。不过我没试过。

【讨论】:

我想创建一个操作员待定议案,以删除该行中除 How are you 之外的所有内容。那么,还有其他可能吗? 直观地选择你好吗,存储在寄存器a中。删除该行。把注册一个 这是常规方式。我知道。但我想为此制定一个议案。所以,我基本上希望从视觉上选择它并对此采取一些行动。就像我们在操作员挂起模式中所做的一样 我可能想做,y or c or d on the selected area,不只是删除跨度> @DurgaSwaroop 我确实故意使用 store 它没有说是使用 y 还是 c 还是 d。顺便说一句:我不明白,为什么你不能让函数做到这一点。【参考方案2】:

将光标放在双引号之间,然后

yi"   # Yank text between double quotes 
dd    # Delete line
"0p   # Paste register 0

应该做的伎俩。

【讨论】:

这是常规方式。我知道。但我想为此制定一个议案。所以,我基本上希望在视觉上选择它并对其执行一些操作。【参考方案3】:

类似于@Jens 的回答:

yi"   # Yank text between double quotes 
V     # Select line
p     # Paste yanked text

【讨论】:

再说一次,这不是我需要的。我需要选择里面的部分,以便我可以运行各种命令

以上是关于在vim中一次视觉选择两个东西的主要内容,如果未能解决你的问题,请参考以下文章

如何从表中一次选择相等的值[重复]

每一行视觉选择的 Vim 宏

在 Vue.js 中一次选择多个图像

如何在表格视图中一次选择单选按钮

Vim:如何将视觉块移动到寄存器?

在vim中一次删除多个文件的第一行