如何在vim中快速找到close html标签?

Bin*_*hen 17 html vim

就像编辑C源文件一样,我可以按%来获取当前光标的{}.编辑html文件时如何做到这一点?有没有快捷方式?要清楚,我想要:

<html>
</html>
Run Code Online (Sandbox Code Playgroud)

当curosr移动到时<html>,我想按一个键,这样光标就会跳转到</html>.

ken*_*orb 18

您可以使用可视化运算符在标记之间跳转,例如:

  1. 将光标放在标签上.
  2. 按下进入可视模式v.
  3. 通过按a+ ti+ t选择内部标记块来选择外部标记块.

您的光标应跳转到匹配的结束html/xml标记.要从结束标记向后跳转,请按oO跳转到相反标记.

现在,您可以通过按Esc,退出c或复制来退出视觉y.


要将该动作录制到注册状态,按qq开始录制,按上述(包括Esc)执行标签跳转,按q完成.然后调用跳转,按@q.


看到更多的帮助:help visual-operators:help v_it:

at 一个<tag> </tag>块(带标签)

it 内部<tag> </tag>


或者使用matchit.vim这样的插件(参见:在没有花括号的语言中使用%).


也可以看看:


jma*_*ans 15

当鼠标位于开始标记上时,您可以通过键入%来使用matchit插件执行此操作.

http://www.vim.org/scripts/script.php?script_id=39

  • 如果我没有弄错,matchit插件包含在vim发行版中,所以这个链接无关紧要.要安装它,请参阅`:h matchit-install`(但我建议您用`ln -s`替换所有`cp`命令,以便每次更新都不会重新复制matchit). (4认同)

Nic*_*son 5

即使使用matchit插件,我也遇到过这个问题.我解决它的方法是修改xml-type文件上的b:match_words.这是我的.vimrc的相关部分:

  autocmd FileType html let b:match_words = '<\(\w\w*\):</\1,{:}'
  autocmd FileType xhtml let b:match_words = '<\(\w\w*\):</\1,{:}'
  autocmd FileType xml let b:match_words = '<\(\w\w*\):</\1,{:}'
Run Code Online (Sandbox Code Playgroud)

尝试一下,看看它是否有帮助.