Emacs 配置 lisp 代码,在从剪贴板粘贴之前和之后更改 electric-indent-mode

Emacs 配置 lisp 代码,在从剪贴板粘贴之前和之后更改 electric-indent-mode

从 Emacs 24.4(我认为)开始,cj 和 ret 已被交换,因此 indent 现在在 ret 之后调用。并且文本模式下的那些缩进是相对于缩进的,因此,当您粘贴缩进的代码时,代码将以对角线粘贴,而不是对齐:

# copied code
  line1
  line2
  line3

# pasted
  line1
    line2
      line3

我可以解决这个问题electric-indent-mode(flip/flop 命令),但我喜欢在文本模式下书写时的缩进相对行为。我只想在粘贴文本时将其关闭。

是否有人有代码可以用来设置粘贴快捷方式,即调用 electric-indent-mode,从剪贴板粘贴并再次设置 electric-indent-mode?

我将非常感激任何关于该代码的教学解释,这样我就能记起我忘记的 elisp。

答案1

这只能发生在文本终端中(其中“粘贴”最终只是将文本逐个字符地发送到 Emacs,就好像您输入了这些字符一样)。

自 Emacs-25 以来,这不再是问题,因为它使用了文本终端的“括号粘贴”支持(这样终端在粘贴文本之前和之后发送特殊的转义序列)。

也不需要对其进行配置:“它就可以正常工作”。

相关内容