我的配置
(electric-pair-mode 1)
(setq electric-pair-text-pairs '(
(34 . 34)
(8216 . 8217)
(8220 . 8221)
(?\“ . ?\”)
(?\{ . ?\})
(?\《. ?\》)
(?\「. ?\」)
(?\< . ?\>)
(?\【. ?\】)
) )
输入《》【】「」等括号时,光标出现在右边括号的外面,而我希望光标出现在括号中间。不知道是否有办法可以实现呢?
最好是用emacs自带的功能就能实现;如果需要安装其他包,请写明。谢谢。
他这是没排除干扰因素就来提问,我先前的回帖是委婉提醒。
$ emacs -nw -Q --eval "\
(progn
(electric-pair-mode 1)
(setq electric-pair-text-pairs '(
(34 . 34)
(8216 . 8217)
(8220 . 8221)
(?\“ . ?\”)
(?\{ . ?\})
(?\《. ?\》)
(?\「. ?\」)
(?\< . ?\>)
(?\【. ?\】)
))
(execute-kbd-macro \"「a\") ;; <- 模拟按键输入 「a
(print (buffer-string)))" --batch
"「a」"
首先,感谢大佬的提醒和回复。
我是在macOS12.6上使用emacs28.2。在终端复制黏贴你的代码输出结果跟你的一样。
但是, 在终端用$ emacs -Q
打开emacs,然后在*scratch*
里面尝试输入:
-
输入{ [ " '
都不会自动补全。因为emacs默认没有打开electric-pair-mode
;
-
但是此时,再按Shift ,输入书名号《》,就会自动补全,并且光标在右边书名号之后。不知道是什么在起作用 。
-
然后粘贴以下代码之后,C-x C-e。再输入{ [
会自动补全,光标在括号中间。但是,输入《
是出现了《》|》
【竖线为光标位置】。
(progn
(electric-pair-mode 1)
(setq electric-pair-text-pairs '(
(34 . 34)
(8216 . 8217)
(8220 . 8221)
(?\“ . ?\”)
(?\{ . ?\})
(?\《. ?\》)
(?\「. ?\」)
(?\< . ?\>)
(?\【. ?\】)
)))
我只能大概举两个例子,无法猜测你电脑上所有的可能:
- 你定义了系统
text shortcuts
。
- 你的输入法有补全功能。
你应该一开始就主动提供详细的步骤和环境信息。
谢谢你!确实是我使用的搜狗输入法导致这个问题。
开启搜狗输入法的“自动补全成对标点”功能就行了。不需要对emacs做额外设置。
另外,谢谢你指点我提问的姿势,这方面我还有待学习。我不太懂技术类的东西。你一开始提起 emacs -Q
的时候,我终端里连emacs都召唤不出来,终端找不到我安装的emacs。
再次感谢你百忙中的热心指点 , 我也从中学习到很多新知识, Thanks♪(・ω・)ノ。
1 个赞
# Start Emacs Without Loading Init File
emacs -q
# Start Emacs with Different Init File
emacs -q -l <InitFilePath>
Quote from Xah’s guide.