我是 emacs 的新手,它的缩进让我难以接受。它太聪明了。它(错误地)认为它知道我想如何格式化我的源代码,但是我没有时间为我编写代码的每种不同语言的每种模式逐个设置;并且其中许多语言根本没有启用任何模式。
这是我想要的行为:
- TAB 插入缩进
- RET 插入一个新行,然后将空白字符从前一行的开头复制到第一个非空白字符或行尾,以先到者为准
- 行开头和第一个非空白字符/行尾之间的空白文本中的 DEL(退格键)如果可能,删除一个缩进,否则像正常的单个字符
- { 没有自动缩进
- } 上没有自动取消缩进
- 事实上,任何时候都没有智能缩进行为,只需在 RET 上复制上一行的缩进即可。
- 每个源文件格式要配置两个变量:display tab width和 content of indent。最好可以将这些配置为随机源代码格式,而不必为它们编写主要模式,除非编写主要模式是 .emacs 中的单行代码,由两个
setq
s 组成。
这将使我在所有语言中都能获得合乎逻辑且一致的行为。它会将格式化代码的工作留给我,但没关系,我已经这样做了 20 年,而且我知道如何制作其他使其高效的宏。更重要的是,它使我免于无休止地摆弄配置设置,试图获得符合我偏好的自动行为。而且我的宏可以依赖于一致的行为,因此它们在所有模式下都能正常工作。
以上可能吗?以前肯定有人这样做过吗?是否有一些次要模式可以做到这一点?