一个Vim的巨大优势是对象的选择,发行快速操作的内容中的单词,段落和各种定界符。

例如,

vi{

将选择一对{}括号内的一切。

是否有用于选择在这里记录或定界符任何等效的功能:

<<<HTML
    ....
    ....
HTML;

根据 ErichBSchulz的答案,我想出了下面一个定界符内选择:

nmap <F6> ?<<<<CR>w*kV?<<<<CR>j

?<<<<CR>w    " find beginning tag (after <<<)
*k           " find matching end tag and go up 1 line
V            " enter visual mode
?<<<<CR>j    " find beginning tag and go down 1 line
有帮助吗?

解决方案

思考较早柱和试图采取他们近了一步。这不会是100%可靠(即将打破如果定界符但喜欢的东西内发生开始标记:

?<<< "find begining
w    " go to starting tag
*    " find starting tag
v    " enter visual mode (could use Upper V to do an 'ambientish' object select 
n    " find end tag
e    " optional include end tag

编辑:肯提高了序列如上述,所以建议你使用他的更好的键映射为“内”定界符选择:

nmap <F6> ?<<<<CR>w*kV?<<<<CR>j

(这是基于php风格here文档)

其他提示

有关选择定界符的I通常将光标放置在第一行中,在所述的定界符标识符然后按 V *

V 将开始一个线选择和 * 将启动一个搜索,将识别符的下一个比赛,该定界符...

通过一个空行终止的<<''定界符是容易的,如果在启动(?<<^M^M)是已:从这里v}选择直到空行

否则,在你的例子我能想到的最好的是v/^HTML

有这个插件,它可以让你定义自己的文本对象。

http://www.vim.org/scripts/script.php ?SCRIPT_ID = 2100

我想这将是很好的定义之一,所以你可以说“益”(定界符中抽出),所以你不必明确地去开始。

请注意我还没有与这个自己上当左右。

如果你只是想要一个视觉选择你可以。

 nnoremap <leader>ih ?HTML<cr>V/HTML<cr>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top