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?

有帮助吗?

解决方案

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

(modify-syntax-entry ?\[ "(]" lisp-mode-syntax-table)
(modify-syntax-entry ?\] ")[" lisp-mode-syntax-table)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top