Answers:
使用您想进入括号内的任何导航键,然后可以使用yi(
或yi)
复制匹配括号内的所有内容。这也适用于方括号(例如yi]
)和花括号。此外y
,您还可以删除或更改文本(例如ci)
,di]
)。
我尝试使用双引号和单引号,并且它似乎也可以正常工作。为了您的数据,我这样做:
write (*, '(a)') 'Computed solution coefficients:'
将光标移到C
,然后键入yi'
。将光标移至空白行,点击p
,然后获取
Computed solution coefficients:
作为CMS指出,该作品的视觉模式选择,以及-只是用vi)
,vi}
,vi'
等。
yi"
选择所有带引号的内容
ci(
还是ci)
为我想要的做。谢谢。i
在那种情况下,我仍然不完全了解,但是只要它有效,谁会在乎呢?:)
要在单引号之间进行选择,我通常会做一个vi'
(“选择内部单引号”)。
在括号块内,我使用vib
(“选择内部块”)
在花括号块内,您可以使用viB
(“大写B”)
要使选择“包括”(也选择引号,括号或花括号),可以使用a
代替i
。
您可以在手册中或vim中阅读有关Text对象选择的更多信息:help text-objects
。
这种选择方法是内置的,在Vim帮助中也有介绍。它涵盖了XML标签和更多内容。
请参阅:help text-objects
。
要在单引号内进行选择,请使用vi'
。
要在括号内选择,请使用vi(
。
ci'
或ci(
用于更改而不是视觉选择。但这正是我想要的。谢谢:)
%vi(
还是这样做%vib
使用searchpair
内置函数在.vimrc中编写Vim 函数:
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.
[...]
我会在投票最多的答案中添加一个细节:
如果您使用的是gvim并想复制到剪贴板,请使用
"+<command>
在方括号(或括号或大括号)之间复制所有内容
例如:"+yi}
将光标所在大括号之间的所有内容复制到剪贴板。
y
。
我做了一个插件vim-textobj-quotes
:https : //github.com/beloglazov/vim-textobj-quotes
它为任何类型的最接近的引号对提供文本对象。仅使用iq
或使用aq
它,您可以对当前围绕光标,在光标之前或之后(按优先顺序排列)的单引号('),双引号(“)或反引号(`)的内容进行操作。换句话说,当需要到达引号时,它会向前或向后跳转。
通过查看示例更容易理解(光标显示为|
):
foo '1, |2, 3' bar
; 按下后diq
:foo '|' bar
foo| '1, 2, 3' bar
; 按下后diq
:foo '|' bar
foo '1, 2, 3' |bar
; 按下后diq
:foo '|' bar
foo '1, |2, 3' bar
; 按下后daq
:foo | bar
foo| '1, 2, 3' bar
; 按下后daq
:foo | bar
foo '1, 2, 3' |bar
; 按下后daq
:foo | bar
上面的示例给出了单引号,该插件的工作方式与双引号(“)和反引号(`)完全相同。
您也可以使用任何其他运营商:ciq
,diq
,yiq
,viq
,等。
请查看上面链接的github页面以获取更多详细信息。
在vim中使用简单的键盘映射可以解决此问题。map viq F” lvf” hh此上面的命令将viq映射到在引号之间搜索的键。用任何字符替换“并创建您的键盘映射。在启动过程中将其粘贴在vimrc中,您应该可以每次使用它。