【问题标题】:how to control tabs and whitespace with emacs version 24.3?如何使用 emacs 24.3 版控制制表符和空格?
【发布时间】:2013-06-16 18:13:45
【问题描述】:

当我在基本模式下按 Tab 键时,我无法让 emacs 版本 24.3 缩进两个空格。我已经阅读了许多其他帖子,例如set 4 Space Indent in Emacs。我很确定这曾经在旧的 emacs 版本中工作:

(setq tab-width 2)
(setq indent-tabs-mode nil)

我现在正在尝试所有这些:

(setq tab-width 2)
(setq-default tab-width 2)
(setq indent-tabs-mode nil)
(setq-default indent-tabs-mode nil)
(setq indent-line-function 'insert-tab)
(setq tab-stop-list (number-sequence 2 400 2))

现在我发现制表符缩进到该行中的第一个空白块之后

this is my first line
     second line starts here

我不知道如何让它变得简单

this is my first line
  second line starts here

也许问题出在我的配置上?我已经在我自己的用户主目录中安装了这个新版本的 emacs - 它不是系统范围的 emacs 版本。

【问题讨论】:

  • 我认为基本模式钩子坏了——这应该有效,但它没有——抱歉:stackoverflow.com/questions/69934/…
  • 基本模式继承了文本模式钩子。 . .嗯。
  • 法律列表:fundamental-mode-hook 没有损坏;它(故意)不存在。
  • 啊。 . .这就解释了——谢谢。进入基本模式后,唯一的选择是手动调用功能设置选项卡集吗?
  • 您可以使用after-change-major-mode-hook,它将运行。例如(add-hook 'after-change-major-mode-hook (lambda () (when (eq major-mode 'fundamental-mode) ...)))

标签: emacs tabs


【解决方案1】:

实际上,您的“我现在正在尝试所有这些”配置工作得很好:

(setq-default tab-width 2)
(setq-default indent-tabs-mode nil)
(setq indent-line-function 'insert-tab)
(setq tab-stop-list (number-sequence 2 400 2))

如果你将你的 init 文件减少到这个,它应该可以正常工作。

您可能正在破坏配置中其他地方的设置?

【讨论】:

  • 这正在工作 - 事实上我的整个 .emacs 文件现在正在工作。我正在做的测试是
  • 这正在工作 - 事实上我的整个 .emacs 文件现在正在工作。我正在做的测试是用 emacs -Q 绕过我的 .emacs 文件,然后创建一个包含一些命令的小文件 jnk.el。如果 jnk.el 是上述命令,并且我在其上运行 M-x eval-buffer,则它不起作用。如果我在 jnk.el 上运行 M-x load-file,它就不起作用。但是如果我当前的缓冲区是我的文本文件(在基本模式下)并且我在 jnk.el 上执行 M-x 加载文件,那么 jnk.el 中的命令将开始应用于文本文件!这是意料之外的吗?感谢您的帮助,我现在已经摆脱了这种挫败感。
  • 我怀疑您只是对预先存在的缓冲区本地值感到困惑。上面的命令将设置默认值(因为前两个 vars 自动是缓冲区本地的,但后两个不是),但是如果您在启动 Emacs 后评估/加载代码,现有缓冲区将已经有自己的本地值。
【解决方案2】:

如果你想改变“当我点击”的行为,首先要做的是C-h k <foo>。这将告诉您运行哪个命令,并可能为您提供有关如何更改其行为的更多提示。 TAB 键的行为取决于主要模式,因此使其执行您想要的操作取决于您使用的主要模式。如果您使用fundamental-mode,则说明您没有以正常方式使用 Emacs,因此我建议您先尝试修复它。

【讨论】:

    猜你喜欢
    • 2014-03-14
    • 1970-01-01
    • 2011-04-04
    • 2013-09-29
    • 2020-05-24
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多