如何让Emacs-Portacle输入左括号时不自动补全右括号?
解决Emacs-Portacle中括号自动补全的包裹问题
针对你遇到的括号自动补全导致包裹代码不符合预期的情况,给你几个实用的解决办法:
临时插入单个左括号:输入左括号前先按
C-q(quoted-insert 命令),再输入(,这样会跳过自动补全逻辑,只插入单个左括号,之后你可以手动补全右括号,就能得到(append ( (list 1 2 3))这种中间状态,再调整成目标代码。调整自动补全触发规则:Portacle 默认用 smartparens 或 paredit 做括号补全,以 smartparens 为例,你可以添加配置限制自动补全的触发场景,比如只在行首或单词后自动补全括号:
(sp-local-pair 'emacs-lisp-mode "(" nil :when '(sp-point-after-word-p sp-point-at-bol-p))把这段代码加到你的 Emacs 配置文件(
~/.emacs.d/init.el或 Portacle 对应的配置文件)里,重启 Emacs 后,在表达式中间插入左括号时就不会自动补全成()了。用包裹命令高效操作:如果用 paredit,选中要包裹的
(list 1 2 3),按M-((paredit-wrap-round 命令),会直接把选中内容包裹在括号里,得到(append (list 1 2 3)),之后直接在合适位置添加'(4 5)即可,比手动输入括号更省心。
内容的提问来源于stack exchange,提问作者Laura Bieber
相关产品推荐
相关产品推荐

