如何粘贴到 emacs --no-window-system 而不进行自动缩进?

如何粘贴到 emacs --no-window-system 而不进行自动缩进?

emacs -nw如果我使用鼠标中键或 Ctrl+Shift+v(在 gnome-terminal 中从剪贴板粘贴)将一段代码从浏览器粘贴到,它会被错误缩进。

原始代码:

for (i=0; i<=10; i++) {
    j = j + i;
    print j;
}

变成:

for (i=0; i<=10; i++) {
          j = j + i;
                print j;
                    }

在 vim 中,可以关闭自动缩进。在 emacs 中,我尝试了两种方法,但都不起作用:

方法 1:

配置 ctrl+y 以在 ~/.emacs 中使用 PRIMARY 选择

(setq x-select-enable-primary t)

并尝试使用 Ctrl-y 而不是鼠标中键或 Ctrl+Shift+V 进行粘贴。结果:ctrl-y 只能从 emacs 的 kill ring 粘贴,而不能从外部选择粘贴。

方法 2:取消 RET 映射newline-and-indent

(add-hook 'lisp-mode-hook '(lambda ()
  (local-set-key (kbd "RET") 'newline)))

它适用于输入 RET(无缩进),但对于鼠标中键或 Ctrl+Shift+V 也会应用自动缩进。

答案1

当遇到换行符时,emacs 会自动缩进。您可以使用electric-indent-local-modeelectric-indent-mode来切换此设置。

http://emacsredux.com/blog/2013/03/29/automatic-electric-indentation/

鲜为人知的是,Emacs 24.1 引入了一种新的全局次要模式,称为 electric-indent-mode。启用后,输入某些字符(如换行符)会触发重新缩进。

相关内容