是否有可能对象的选择定界符或“这里文件”用vim?
-
23-09-2019 - |
题
一个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 将开始一个线选择和 * 将启动一个搜索,将识别符的下一个比赛,该定界符... 的端部p>
通过一个空行终止的<<''
定界符是容易的,如果在启动(?<<^M^M
)是已:从这里v}
选择直到空行
否则,在你的例子我能想到的最好的是v/^HTML
。
有这个插件,它可以让你定义自己的文本对象。
http://www.vim.org/scripts/script.php ?SCRIPT_ID = 2100
我想这将是很好的定义之一,所以你可以说“益”(定界符中抽出),所以你不必明确地去开始。
请注意我还没有与这个自己上当左右。
如果你只是想要一个视觉选择你可以。
nnoremap <leader>ih ?HTML<cr>V/HTML<cr>
不隶属于 StackOverflow