С помощью emacs, как перейти к спариванию (балансировке) скобок
при наведении курсора на одну скобку, как перейти к спариванию скобок. Хорошо работать в emacs-nw .
как % в Vim.
;;после того, как получил подсказку от @Lindy, @Francesco, я нашел больше:
C-M-f Move forward over a balanced expression
C-M-b Move backward over a balanced expression
C-M-k Kill balanced expression forward
C-M-SPC put the mark at the end of the sexp.
C-M-n Move forward over a parenthetical group
C-M-p Move backward over a parenthetical group
;; C-M key binding can also be done by --> ESC Control-key
;;And put this to .emacs, it will highlight opening/closing parens:
(show-paren-mode 1)
6 ответов:
использовать
C-M-right
иC-M-left
(соответственноbackward-sexp
иforward-sexp
) для перехода к началу или концу текущего выражения. Это работает для пар скобок, но и для простых слов.
Как упоминалось в Emacs wiki (http://www.emacswiki.org/emacs/NavigatingParentheses):
C-M-n вперед-список двигаться вперед по скобочной группе
C-M-p назад-список перемещается назад по скобочной группе
C-M-f вперед-sexp двигаться вперед над сбалансированным выражением
C-M-b назад-sexp двигаться назад по сбалансированному выражению
C-M-k убить-sexp убить сбалансированное выражение вперед
C-M-SPC mark-sexp поставьте отметку в конце sexp.
https://superuser.com/questions/677516/how-do-i-jump-to-the-opening-or-closing-paren-brace-in-emacs
Я предлагаю C-M-f и C-M-b, так как C-M-right/left уже привязаны к моему DE (переключитесь на рабочий стол справа / слева).
Я использую следующую небольшую функцию именно для этого (хотя я не знаю, соответствует ли она поведению vim; я сам не пользователь vim):
(defun mo-match-paren (arg) "Go to the matching parenthesis." (interactive "p") (cond ((looking-at "\s\(") (forward-list 1) (backward-char 1)) ((looking-at "\s\)") (forward-char 1) (backward-list 1)) (t (self-insert-command (or arg 1)))))
Я очень рекомендую SmartParens Он имеет обширную навигацию и манипуляции парентетических структур (т. е. обертывание, кавычки, теги, скобки, фигурные скобки, обычные скобки, sexp и т. д.) С поддержкой многих языков и структур, с легкой настройкой.
Он также поддерживает довольно сложные структуры, которые называются hybrid-s-выражения в его документации. Что делает его чрезвычайно мощным для работы с кодом в языки как C / C++, Java, JS etc.
на навигация используются следующие параметры.
sp-forward-sexp (&optional arg) ;; C-M-f sp-backward-sexp (&optional arg) ;; C-M-b sp-down-sexp (&optional arg) ;; C-M-d sp-backward-down-sexp (&optional arg) ;; C-M-a sp-up-sexp (&optional arg) ;; C-M-e sp-backward-up-sexp (&optional arg) ;; C-M-u sp-next-sexp (&optional arg) ;; C-M-n sp-previous-sexp (&optional arg) ;; C-M-p sp-beginning-of-sexp (&optional arg) ;; C-S-d sp-end-of-sexp (&optional arg) ;; C-S-a sp-beginning-of-next-sexp (&optional arg) ;; none sp-beginning-of-previous-sexp (&optional arg) ;; none sp-end-of-next-sexp (&optional arg) ;; none sp-end-of-previous-sexp (&optional arg) ;; none
обратите внимание, что он сопоставляет многие команды с эквивалентом Emacs по умолчанию. Когда он установлен, просто просмотрите его функции (все они имеют префикс
sp-
), чтобы получить хорошее чувство для его масштаба.там гораздо больше, я бы рекомендовал вам иметь посмотрите на вики