我确信曾经有一个用于此类东西的插件,但现在我需要它,我似乎无法找到它(自然),所以我只会问一个简单的问题。

在括号、引号或匹配字符列表之间进行选择的最简单方法是什么?

   write ( *, '(a)' ) 'Computed solution coefficients:'

例如,这里我想选择 (a), , 或者 Computed solution coefficients:.

我对多行不感兴趣,只对发生在一行上的情况感兴趣。

有帮助吗?

解决方案

使用任何导航键,你想要得到的括号内,那么你可以使用yi(yi)到匹配的括号内的所有内容复制。这也适用于方括号(例如yi])和大括号。除了y,也可以删除或更改文本(例如ci)di])。

我试图与双和单引号和它出现在那里工作,以及。为您的数据,我做的:

write (*, '(a)') 'Computed solution coefficients:'

将光标移至C,然后键入yi'。将光标移动到一个空行,击中p,并获得

Computed solution coefficients:

CMS注意到,这适用于视觉模式的选择,以及 - 只使用vi)vi}vi'

其他提示

选择的该方法内置和很好地覆盖在Vim的帮助。它涵盖XML标签和其他。

请参阅:help text-objects

有关单引号内选择使用vi'

有关括号使用vi(内选择。

使用箭头或hjkl去的包围表达式之一,然后v选择视觉(即选择)模式,然后%跳转到其他托架。

使用searchpair内置函数写入一个Vim函数中的.vimrc:

searchpair({start}, {middle}, {end} [, {flags} [, {skip}
            [, {stopline} [, {timeout}]]]])
    Search for the match of a nested start-end pair.  This can be
    used to find the "endif" that matches an "if", while other
    if/endif pairs in between are ignored.
    [...]

http://vimdoc.sourceforge.net/htmldoc/eval.html

我将一个细节添加到最投票答案:

如果你正在使用gvim的,并希望复制到剪贴板,使用

"+<command>

要复制所有括号(或括号或大括号)之间的内容

例如:"+yi}将复制到剪贴板所有大括号光标之间的内容

我做了一个插件 vim-textobj-quotes: https://github.com/beloglazov/vim-textobj-quotes

它为任何类型的最接近的引号对提供文本对象。仅使用 iq 或者 aq 它允许您对当前光标周围、光标前面或后面(按优先顺序)的单引号 (')、双引号 (") 或反引号 (`) 的内容进行操作。换句话说,当需要到达引号时,它会向前或向后跳转。

通过查看示例更容易理解(光标显示为 |):

  1. 前: foo '1, |2, 3' bar;按下后 diq: foo '|' bar
  2. 前: foo| '1, 2, 3' bar;按下后 diq: foo '|' bar
  3. 前: foo '1, 2, 3' |bar;按下后 diq: foo '|' bar
  4. 前: foo '1, |2, 3' bar;按下后 daq: foo | bar
  5. 前: foo| '1, 2, 3' bar;按下后 daq: foo | bar
  6. 前: foo '1, 2, 3' |bar;按下后 daq: foo | bar

上面的示例是针对单引号给出的,该插件对于双引号 (") 和反引号 (`) 的工作方式完全相同。

您还可以使用任何其他运算符: ciq, diq, yiq, viq, , ETC。

请查看上面链接的 github 页面以了解更多详细信息。

在vim一个简单的键映射将解决这个问题。     地图言语智商F” LVF” HH 上面这条命令映射到VIQ键引号之间进行搜索。替换“以任何字符,并创建你的键盘布局。 启动过程中的vimrc坚持这一点,你应该能够每次使用它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top