Emacs, nxhtml, как выделить или перейти к закрывающему тегу html?

Я использую emacs с nxhtml для редактирования моих файлов HTML, но я не могу узнать, как выделить или перейти к закрывающему тегу HTML?

Звучит как простой и глупый вопрос, но я действительно не могу его найти. Возможно я не ищу правильную вещь.

2 ответа

Решение

Я использую функции из sgml-mode:

  • Ctrl+c Ctrl+f (sgml-skip-tag-forward)
  • Ctrl+c Ctrl+b (sgml-skip-tag-backward)

Вы всегда можете переназначить их на более удобный ярлык для вашего основного режима, а именно:

(add-hook 'html-mode-hook
 (lambda ()
 (define-key html-mode-map (kbd "<M-left>") 'sgml-skip-tag-backward)
 (define-key html-mode-map (kbd "<M-right>") 'sgml-skip-tag-forward)
 )
)

В nxhtml-mode, Chm должен указывать следующие привязки:

<C-M-down>  nxml-down-element
<C-M-left>  nxml-backward-element
<C-M-right> nxml-forward-element
<C-M-up>    nxml-backward-up-element

Функции forward и backward - это то, о чем вы спрашиваете, а функции up и down позволяют перемещаться к родительскому или дочернему элементу в иерархии.

sgml-mode Ответ более надежен для HTML (в отличие от правильно сформированного XHTML), но вы можете добавить автозагрузки для этих функций, если вы будете использовать их в nxhtml-mode, так как последний не требует первого.

(autoload 'sgml-skip-tag-forward "sgml-mode"
  "Skip to end of tag or matching closing tag if present.
With prefix argument ARG, repeat this ARG times.
Return t if after a closing tag." t)

(autoload 'sgml-skip-tag-backward "sgml-mode"
  "Skip to beginning of tag or matching opening tag if present.
With prefix argument ARG, repeat this ARG times.
Return non-nil if we skipped over matched tags." t)
Другие вопросы по тегам