如何完全禁用Emacs中的所有自动缩进?我需要至少在基本模式下将其禁用,但是我可以在当前会话中全局禁用它。
在声明重复项之前,请阅读此问题的其余部分。 我发现的所有其他答案都是针对性更强的禁用缩进。我真的想完全禁用整个会话的所有自动缩进。
设置electric-layout-mode
为nil
无效。
细节
有时,我喜欢用Windows ASCII文本编辑器编写大型的Git提交消息。这些消息经常包含项目符号列表,代码块或其他在我的源文档中的准确格式有意义的内容。我的代码库是在Linux上的,并且我使用纯文本SSH客户端连接到该框。当Git进入Emacs来编辑提交消息时,我希望能够将源提交消息复制到Windows剪贴板,然后使用Windows粘贴命令将其粘贴。从Emacs的角度来看,我键入的是Windows文本文件中找到的内容。不幸的是,当Emacs看到缩进线时,它会添加自己的自动缩进,因此我沿着缓冲区的左边缘得到了这个巨大的空白三角形。
我正在使用GNU Emacs 24.3.1。
解决方法
我当前的解决方法是将Windows文本文件传输到由Linux主机安装的文件系统,将文件加载到Emacs,然后使用kill和yank传输内容。这有点笨拙。
例
这是一个示例文本块:
a
- b
c
d
通过MSWin粘贴将其粘贴到Emacs-under-ssh时,它的显示方式如下:
a
- b
c
d
如果我C-h l
在粘贴后按,这就是我所看到的。请注意,换行是使用C-j
而不是输入的RET
。
a C-j C-j SPC SPC - SPC b C-j SPC SPC SPC SPC c C-j
SPC SPC SPC SPC d C-j C-h l
:set paste
?基本上就是说“不要以任何方式触摸粘贴的文本”。其中还包括自动缩进。
hack-local-variables-hook
-基本上撤消什么其他主要-模式设定为自己的一部分标准初始化。fundamental-mode
只是其中的一个小功能simple.el
-即,(kill-all-local-variables) (run-mode-hooks)
。M-x find-function RET fundamental-mode RET
-您可以根据需要修改/创建自己的;但是,如果您更改名称,则某些功能将不会使用它-因此请考虑保留相同的名称。