如何在Vim中快速找到结束HTML标记?

uyto3xhc  于 2023-10-20  发布在  其他
关注(0)|答案(5)|浏览(115)

就像编辑C源文件一样,我可以按%来获得当前光标{的关闭}
如何在编辑HTML文件时做到这一点?有捷径吗?
为了明确,我想:

<html>
</html>

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

h79rfbju

h79rfbju1#

您可以使用可视化操作符在标记之间跳转,例如:
1.将光标放在标记上。
1.按v进入可视模式。
1.通过按a+t或i+t键选择外部标记块用于内部标记块。
您的光标应该向前跳转到匹配的结束html/xml标记。要从结束标签向后跳转,请按O或O跳转到相反的标签。
现在,您可以通过按ESC键退出visual,通过c或y更改它。
要将该动作记录到寄存器中,请按qq开始记录,执行如上所述的标签跳转(包括ESC),按q结束。然后按@q键启动跳转。
请参阅:help visual-operators:help v_it的更多帮助:
位于<tag> </tag>块(带标记)
it内部<tag> </tag>
或者使用插件,如matchit.vim(参见:Using % in languages without curly braces)。
另请参阅:

voase2hg

voase2hg2#

你应该可以通过matchit插件在你的鼠标在开始标签上时输入%来做到这一点。
http://www.vim.org/scripts/script.php?script_id=39

alen0pnh

alen0pnh3#

我有问题,这是过去,即使与matchit插件。我解决这个问题的方法是修改xml类型文件上的B:match_words。以下是my .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,{:}'

试试看,看看是否有帮助。

0vvn1miw

0vvn1miw4#

MatchTagAlways是一个插件,它总是突出显示包含光标位置的XML/HTML标记。
https://github.com/Valloric/MatchTagAlways

sczxawaw

sczxawaw5#

我不能让上面的工作,所以这是我在我的.vimrc尝试:)
imap <expr> > getline('.')[col('.')-2] !~# '\s' ? '><Esc>bvwy/><CR>a</<Esc>p<Esc>bba' : '>'
这是一个条件Map,如果>之前有字符,它会忽略html扩展(例如:if foo > 3被忽略)
我喜欢这个Map的原因是它是文件类型不可知的(这对于在js文件中编写html很方便,例如)

相关问题