2015-07-21 100 views
0

在emacs-lisp模式下,每当我插入一个右大括号时,我都喜欢缩进相同的列,就像相应的左大括号。这怎么可能?如果我有,例如在我的init.elEmacs lisp代码缩进

(defadvice isearch-forward-regexp (before kill-ring-save-before-search activate) 
    "Save region (if active) to kill-ring before starting isearch. So that region 
can be inserted into isearch easily with C-y." 
    (when (region-active-p) 
    (kill-ring-save (region-beginning) (region-end)) 
    ) ;; this should be under (when 
) ;; this should be under (defadvice 
+6

不要这样做。 **不要习惯于自己在线上放置左括号, Lisp程序员发现这个令人不安。** http://www.gnu.org/software/emacs/manual/html_node/elisp/Coding-Conventions.html – ntalbs

+2

请不要这样做。这会让你更难与其他elisp作者交换代码。 – Vatine

+0

“))))))”不要麻烦lisp程序员的原因是他们从来没有数过它们。缩进是重要的,括号总是平衡的,因为它们使用了信任。 –

回答

1

看来,要对齐的密切括号能够 视觉匹配他们以开放的。你可以用 show-paren-mode来做到这一点 - 它在这个工作上更好。

正如其他人指出的那样,我完全同意,悬挂的pa子是 非常讨厌和痛苦的看看 - 不要使用 他们的习惯。我已经写了一小的模式编辑elisp的,这可能是 有趣的你 - lispy-mode

  1. 会自动缩进s表达式,消除 挂括号。

  2. d将切换从S-表达的一个侧面 其他:一个快速的方法来看看当前列表中包含的内容。

  3. 将切换 当前列表中的区域选择:你可以看到它所包含的内容更加清晰。

+0

伟大的提示! lispy-mode看起来像是一个很好的导航lisp源并处理括号的模式。 (但是我想知道我的方括号是在哪里,或者我怎么能让他们回来......) – Matthias

+0

要插入'[]',请按**} **。 –