轻微调整autopair emacs

轻微调整autopair emacs,emacs,brackets,Emacs,Brackets,是否有人知道如何更改autopair.el,当您有一个区域时,按(会导致点位于前面(而不是括号内) 很长一段时间以来,它一直困扰着我,因为每当我选择了一个区域,并且我想插入括号时,我不希望该点位于括号内 标准行为选定区域文本->([点]文本) 所选区域文本->[点]](文本)脏版本:将autopair.el的第952行中的1+更改为1-。我目前没有办法干净地进行此类修改。我已提交了一份文件,以简化此定制。脏版本:将1+更改为autopair.el的第952行中的1-。我目前我没有找到一种干净的方

是否有人知道如何更改autopair.el,当您有一个区域时,按
会导致点位于前面(而不是括号内)

很长一段时间以来,它一直困扰着我,因为每当我选择了一个区域,并且我想插入括号时,我不希望该点位于括号内

标准行为选定区域文本->([点]文本)


所选区域文本->[点]](文本)脏版本:将
autopair.el
的第952行中的
1+
更改为
1-
。我目前没有办法干净地进行此类修改。我已提交了一份文件,以简化此定制。

脏版本:将
1+
更改为
autopair.el
的第952行中的
1-
。我目前我没有找到一种干净的方法来进行这种修改。我已经提交了一份文件,以简化这种定制。

从第952行开始,正如pmr所指出的:

(goto-char (1+ (car region-before))))
改为:

(goto-char (1- (car region-before)))
(right-char 1))

从pmr指出的第952行开始:

(goto-char (1+ (car region-before))))
改为:

(goto-char (1- (car region-before)))
(right-char 1))

这似乎有点棘手。请注意,autopair会根据当前活动区域的开始和结束将点设置到不同的位置。这似乎有点棘手。请注意,autopair会根据当前活动区域的开始和结束将点设置到不同的位置。我制作了一个小函数,该函数不显示“左字符”在自动配对之后,但它遇到了与此相同的问题。我认为您没有尝试此操作,因为它实际上使您的一个字符返回得太远了。不过,非常感谢您为此付出了额外的努力。@Duality我也没有尝试此操作,因为
autopair
将根据使用结束符或结束符的包装将点放在不同的位置打开大括号。另外,区域开始的位置值会比区域结束的位置值高吗?如果是这种情况,我预测会有更多的麻烦。pmr指出了问题所在,给出了半个解决方案(1-实际上奇怪的是-2),添加
(右字符1)真的很难看
解决了这个问题,如下面的答案所示。感谢您提交请求。我制作了一个小函数,可以“left char”在自动配对之后,但它遇到了与此相同的问题。我认为您没有尝试此操作,因为它实际上使您的一个字符返回得太远了。不过,非常感谢您为此付出了额外的努力。@Duality我也没有尝试此操作,因为
autopair
将根据使用结束符或结束符的包装将点放在不同的位置打开大括号。另外,区域开始的位置值会比区域结束的位置值高吗?如果是这种情况,我预测会有更多的麻烦。pmr指出了问题所在,给出了半个解决方案(1-实际上很奇怪-2),非常难看添加
(右字符1)
解决了问题,如下面的答案所示。感谢您提出请求。