在Emacs中编辑HTML时,如何跳转到匹配的标记?

Ste*_*eve 34 html emacs

假设我正在编辑一个非常冗长且混乱的HTML文件.将光标放在打开的标签上,有没有办法跳转到结束标签?

Tör*_*bor 54

如果您正在使用sgml-mode或其衍生物(例如html-mode):

sgml-skip-tag-forward 是``sgml-mode.el'中的交互式编译Lisp函数.

它必然会

C-c C-f

要么

C-c <right>

并绑定到菜单栏:

<menu-bar> <sgml> <sgml-skip-tag-forward>`
Run Code Online (Sandbox Code Playgroud)

来自emacslisp:

(sgml-skip-tag-forward arg)
Run Code Online (Sandbox Code Playgroud)

如果存在,请跳至标记结尾或匹配结束标记.使用前缀参数arg,重复此arg次.如果在结束标记之后返回t.

  • 方便的是,无论模式如何,这些函数都可以编写工作(前提是已经加载了 `sgml-mode` 库);所以如果你使用其他模式编辑 HTML,你仍然可以调用 `sgml-skip-tag-forward` 和 `sgml-skip-tag-backward`。 (2认同)

Der*_*ger 24

假设你正在使用nxml-mode:

C-M-n runs the command nxml-forward-element, which is an interactive
compiled Lisp function in `nxml-mode.el'.

It is bound to C-M-n.

(nxml-forward-element &optional ARG)

Move forward over one element.
With ARG, do it that many times.
Negative ARG means move backward.
Run Code Online (Sandbox Code Playgroud)

  • 顺便提一下,这与您在许多语言模式中导航结束/打开括号/括号/括号时使用的绑定相同. (2认同)

dat*_*dat 7

...如果您使用网络模式, C-c C-n则会从开始标记跳转到相应的结束标记.该模式还有一些其他功能(代码折叠,自动关闭HTML标签,......),值得一看.