Emacs 配置 lisp 代碼,在從剪貼簿貼上之前和之後更改電動縮排模式

Emacs 配置 lisp 代碼,在從剪貼簿貼上之前和之後更改電動縮排模式

從 Emacs 24.4 開始(我認為),cj 和 ret 已經交換,所以 indent 現在在 ret 之後調用。文字模式下的這些縮排是相對縮排的,因此,當您貼上縮排程式碼時,程式碼會以對角線形式貼上,而不是對齊:

# copied code
  line1
  line2
  line3

# pasted
  line1
    line2
      line3

我可以解決這個問題electric-indent-mode(翻轉/觸發器命令),但我喜歡在文字模式下編寫時的縮排相關行為。我只想在貼上文字時將其關閉。

有誰有程式碼可以用來設定調用電動縮排模式的貼上快捷方式,從剪貼簿貼上並再次設定電動縮排模式?

我希望對程式碼有任何教學解釋,這樣我就可以記住我忘記的 elisp。

答案1

這應該只發生在文字終端中(其中「貼上」最終只是將文字逐個字元發送到 Emacs,就像您鍵入了這些字元一樣)。

從 Emacs-25 開始,這不再是問題,因為它使用文字終端的「括號貼上」支援(這樣終端在貼上文字之前和之後發送特殊的轉義序列)。

也不需要配置它:「它就可以工作」。

相關內容