How to indent square brackets identically as paren

2019-07-21 19:00发布

I've defined a few read-macros in Common Lisp with square bracket delimiters, and I'd like to make Emacs indent those square brackets in the exactly same way as with parentheses.

For example, from this:

(mapcar [if (flag)
        :t 
        :f]
        my-list)

To this:

(mapcar [if (flag)
            :t
            :f]
        my-list)    

...which is what Emacs would do if the square brackets were parentheses.

How can I achieve that?

1条回答
男人必须洒脱
2楼-- · 2019-07-21 19:12

You need to tell Emacs that [ and ] are matching parentheses:

(modify-syntax-entry ?\[ "(]" lisp-mode-syntax-table)
(modify-syntax-entry ?\] ")[" lisp-mode-syntax-table)
查看更多
登录 后发表回答