Emacs标签的全局配置

jam*_*her 6 emacs expand tabs spaces

我正试图从Vim切换到Emacs,但是我正在试图将它配置为按照我希望的方式处理标签.我要求:

  • 插入"标签"以扩展为两个空格.无论我做什么,Emacs固执地坚持八个.
  • 标签(即真实\t字符)将在屏幕上以两个空格表示.
  • 按TAB键应在光标处插入一个标签,而不是缩进整行.目前,我在任何地方按TAB,Emacs在行开始时销毁所有空格; 到目前为止,这是最令人愤怒的事情.

我目前的~/.emacs读物

(setq standard-indent 2)
(setq-default indent-tabs-mode nil)
Run Code Online (Sandbox Code Playgroud)

但我从网上尝试过没有结束的建议配置,但没有一个完成他们所说的.(API是否会不断变化?我正在使用它GNU Emacs 23.1.1.)

Dam*_*yan 7

Emacs对处理缩进具有极其灵活的支持.通常,您所处的模式决定了它们的工作方式 - 因此,如果您正在处理C文件,那么按Tab键的工作方式将与您处理Python文件时的方式不同.

所以它确实取决于你正在使用哪种模式,这将限制你得到的答案.在大多数情况下,我建议你不要反对它 - 对我来说,缩进行为是emacs的最佳功能之一.但是,您需要花时间自己定制它.

要更改选项卡的显示方式,您需要将tab-width设置为2.如果您正在编辑Java或C样式代码,那么听起来您想要将这些优秀的缩进功能关闭到NIL:

  • C-制表总是缩进
  • C-句法压痕
  • 缩进凸片模式

我建议你通过自定义界面设置这些.如果使用"Mx customize-group RET C",则可以看到C模式的各种设置.

如果您正在编辑不同类型的文件,那么说明将有所不同.

也许emacs的文件模式错误.您可以尝试使用"Mx基本模式"来查看您是否更喜欢那里的行为.