【问题标题】:Why doesn't modifying the .emacs file change the behavior of GNU Emacs?为什么修改 .emacs 文件不会改变 GNU Emacs 的行为?
【发布时间】:2016-05-03 21:59:23
【问题描述】:

我在 Windows 7 上运行 GNU Emacs 24.3.1。正如this manual page 中提到的,我可以输入

C-x d ~/ RET

确定我的主目录的位置。就我而言,Emacs 返回:

e:/EmacsDocs

根据 Windows 资源管理器,其中确实包含一个文件 .emacs。当我用 Emacs 打开.emacs 时,文件似乎是空的。

现在,我想设置 Emacs,使其默认处于 覆盖模式。根据this page,可以通过将以下内容添加到.emacs来完成:

(setq-default overwrite-mode t)

但是当我对 .emacs 进行此更改并关闭并重新打开 Emacs 时,当我选择文本并开始输入时,Emacs 不会覆盖。 (相反,它仍然以插入模式运行,在光标前插入新字符。)

我也尝试过,例如,将此命令添加到.emacs,根据this page 将禁用光标闪烁:

(blink-cursor-mode 0)

但同样,当我重新启动 Emacs 时没有任何变化。

我如何判断 Emacs 是否真的在读取主目录中的 .emacs(在重新启动 Emacs 时)?

【问题讨论】:

  • 看看你最近启动的emacs是否有一个messages缓冲区,其中可能包含一些线索(切换到messages缓冲区,默认命令是C-x b messages RET)。从命令行 (gnu.org/software/emacs/manual/html_node/efaq/…) 使用 --debug-init 参数启动 emacs 也很有用。

标签: emacs


【解决方案1】:

您将 Emacs 调用的 overwrite-mode 与请求的行为“当我选择文本并开始输入时覆盖”混淆了。

在 Emacs 中,后一种行为称为 delete-selection-modeoverwrite-mode 表示当您键入文本(不选择任何内容)时,光标后面的任何现有文本都会被您键入的内容覆盖。

大多数 Emacs 用户默认不会打开overwrite-mode,他们只是在需要时按insert 键(通常在home 键的左侧)来打开/关闭“覆盖模式”/想要。

一种默认开启delete-selection-mode的方法是在你的初始化文件(.emacs)中加入一个

(setq delete-selection-mode t)

(delete-selection-mode)

另一种方法是使用M-x customize-option RET delete-selection-mode RET自定义选项delete-selection-mode并保存自定义值。

【讨论】:

    【解决方案2】:

    不用在 Emacs 之外编辑文件,只需键入

    C-x C-f ~/.emacs
    

    并在那里添加您的配置。用

    保存
    C-x C-s
    

    然后重新启动。这应该可以工作,因为 ~ 在 Emacs 中默认为主目录。

    【讨论】:

      猜你喜欢
      • 2011-08-09
      • 2012-03-04
      • 1970-01-01
      • 2010-12-30
      • 1970-01-01
      • 2022-01-22
      • 2010-12-18
      • 1970-01-01
      相关资源
      最近更新 更多