用emacs,如何去配对(平衡)括号
当光标放在一个括号上时,如何跳转到配对的括号。 很好在emacs-nw上工作。
就像Vim中的%一样。
;;从@Lindy @Francesco得到提示后,我发现更多:
CMf Move forward over a balanced expression CMb Move backward over a balanced expression CMk Kill balanced expression forward CM-SPC put the mark at the end of the sexp. CMn Move forward over a parenthetical group CMp Move backward over a parenthetical group ;; CM 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)
使用CM-right
和CM-left
(分别为backward-sexp
和forward-sexp
)转到当前expression式的开头或结尾。 这适用于括号对,但也适用于普通话。
正如emacs维基( http://www.emacswiki.org/emacs/NavigatingParentheses )中提到的那样:
-
CMn转发名单向前移动括号组
-
CMp后退列表向后移动括号组
-
CMf forward-sexp向前迈进一个平衡的expression
-
CMb落后sexp向后移动一个平衡的expression
-
CMk kill-sexp杀死平衡的expression
-
CM-SPC mark-sexp在sexp结尾处标记。
https://superuser.com/questions/677516/how-do-i-jump-to-the-opening-or-closing-paren-brace-in-emacs
对于括号,括号和括号只是双击他们的伎俩。
我build议CMf和CMb,因为CM右/左已经绑定到我的DE(切换到左/右侧的桌面)。
我完全用下面的小函数(尽pipe我不知道它是否符合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-expressions 。 这使得它非常强大的操纵C / C ++,Java,JS等语言的代码。
为了导航 ,使用以下内容。
sp-forward-sexp (&optional arg) ;; CMf sp-backward-sexp (&optional arg) ;; CMb sp-down-sexp (&optional arg) ;; CMd sp-backward-down-sexp (&optional arg) ;; CMa sp-up-sexp (&optional arg) ;; CMe sp-backward-up-sexp (&optional arg) ;; CMu sp-next-sexp (&optional arg) ;; CMn sp-previous-sexp (&optional arg) ;; CMp sp-beginning-of-sexp (&optional arg) ;; CSd sp-end-of-sexp (&optional arg) ;; CSa 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默认等效的命令。 安装后,只需浏览它的function(它们都以sp-
为前缀),以便更好地感受它的规模。
还有更多,我build议你看看维基