就像编辑C源文件一样,我可以按下%来获取当前光标所在位置的闭合
当我编辑HTML文件时,我该如何做到这一点?有没有快捷键?
明确一点,我想要的是:
当光标移动到
}
。当我编辑HTML文件时,我该如何做到这一点?有没有快捷键?
明确一点,我想要的是:
<html>
</html>
当光标移动到
<html>
时,我想按下一个键,使光标跳到</html>
。:help visual-operators
或 :help v_it
以获取更多帮助:
at 带有标记的
<tag> </tag>
块it 内部的
<tag> </tag>
块
使用matchit插件,当鼠标位于起始标签上时,键入%即可完成此操作。
:h matchit-install
(但我建议您将所有的cp
命令替换为ln -s
,这样每次更新matchit时就不需要重新复制它了)。 - ZyX我过去在使用matchit插件时遇到了这个问题。我解决它的方式是修改xml类型文件中的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,{:}'
试一下,看它是否有帮助。
.vimrc
文件中有这样一行代码::let loaded_matchit = 1
。我在没有仔细阅读文档的情况下将其添加到了开头,这导致我花费了很多时间来调试这个错误。 - Frank Cheng我无法让上述内容正常工作,所以这是我在我的.vimrc
中尝试的 :)
imap <expr> > getline('.')[col('.')-2] !~# '\s' ? '><Esc>bvwy/><CR>a</<Esc>p<Esc>bba' : '>'
这是一个条件映射,如果在
>
之前有字符,则忽略html扩展(例如:if foo > 3
将被忽略)
我喜欢这个映射的原因是它与文件类型无关(这在编写js文件中的html时非常方便)