如何在Vim中括号(或引号或...)之间进行选择?(How to select between br

2019-06-24 12:36发布

我敢肯定,曾经是这个东西还挺一个插件,但现在我需要它,我似乎无法找到它(自然),所以我就问了简单好用。

什么是括号,或报价,或一般匹配字符的列表之间进行选择的最简单的方法?

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

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

我不感兴趣的多,只是在一行中出现的情况。

Answer 1:

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

我试图与双人和单引号和它似乎工作有作为。 为您的数据,我做的:

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

将光标移动到C ,然后输入yi' 。 将光标移动到一个空行,打p ,并获得

Computed solution coefficients:

作为CMS指出 ,这个工程的视觉模式选择,以及-只使用vi) vi}vi'等。



Answer 2:

对单引号我通常做之间进行选择vi' (‘选择内单引号’)。

内的括号块,我使用vib (“选择内部块”)

里面一个大括号块,你可以使用viB (“资本B”)

为了使选择“包容性”(也选择了引号,括号或大括号),可以使用a ,而不是i

你可以阅读更多关于文本对象选择手动,或者:help text-objects VIM内。



Answer 3:

选择这种方法是内置的,并很好地覆盖在Vim的帮助。 它涵盖了XML标签等。

参见:help text-objects



Answer 4:

对于单引号内选择使用vi'

对于括号内使用选择vi(



Answer 5:

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



Answer 6:

写在使用的.vimrc Vim的功能searchpair内置函数:

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 )



Answer 7:

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

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

"+<command>

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

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



Answer 8:

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

它提供了最接近的对任何类型的引号的文本对象。 只使用iqaq它可以让你对单引号('),双引号(“),或背面内容进行操作(`),目前围绕光标报价,都在光标,或背后的前面(在顺序偏好)。换句话说,它需要到达报价时,跳跃前进或后退。

它很容易通过看实例(光标显示为了解| ):

  1. 之前: foo '1, |2, 3' bar ; 按下后diqfoo '|' bar foo '|' bar
  2. 之前: foo| '1, 2, 3' bar foo| '1, 2, 3' bar ; 按下后diqfoo '|' bar foo '|' bar
  3. 之前: foo '1, 2, 3' |bar ; 按下后diqfoo '|' bar foo '|' bar
  4. 之前: foo '1, |2, 3' bar ; 按下后daqfoo | bar foo | bar
  5. 之前: foo| '1, 2, 3' bar foo| '1, 2, 3' bar ; 按下后daqfoo | bar foo | bar
  6. 之前: foo '1, 2, 3' |bar ; 按下后daqfoo | bar foo | bar

以上给出了单引号的例子,该插件的工作原理完全为双引号(“)和背面(`)报价相同的方式。

您也可以使用任何其他运营商: ciqdiqyiqviq ,等等。

请看看上面链接了解更多详情GitHub页面



Answer 9:

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



文章来源: How to select between brackets (or quotes or …) in Vim?