Emacs, nxhtml, как выделить или перейти к закрывающему тегу html? - PullRequest
9 голосов
/ 11 августа 2011

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

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

Ответы [ 2 ]

12 голосов
/ 11 августа 2011

Я использую функции из 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)
 )
)
4 голосов
/ 11 августа 2011

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

<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

Функции «вперед» и «назад» - это то, о чем вы спрашиваете, а функции «вверх» и «вниз» позволяют перейти к родительскому или дочернему элементу в иерархии.

Ответ 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)
...