Emacs子词模式不起作用

时间:2014-06-15 02:48:25

标签: emacs

在我的Emacs init.el中,我只有(setq subword-mode t)行。当我在M-f这样的单词中使用M-bWriteToFile时,它不会在子词之间移动点。当我执行M-x subword-mode时,它会禁用它,因此它已启用。当我重新启用它时,它可以工作。

3 个答案:

答案 0 :(得分:5)

尝试添加 (global-subword-mode 1) 到你的emacs文件,它对我有用!

答案 1 :(得分:1)

您的solution来电(subword-mode 1)而不是设置(setq subword-mode t)是正确的。

问题在于,当您运行M-x subword-mode时,认为它已启用,因为您已设置了旨在保持此状态的变量。因此,它会运行代码以禁用该模式,即使它未启用。

从手册:

C-h i g (emacs) Minor Modes RET

  

大多数次要模式也有一个"模式变量",与mode命令同名。如果模式已启用,则其值为非nil;如果已禁用,则其值为nil通常,您不应尝试通过直接在Lisp中更改模式变量的值来启用或禁用该模式;您应该改为运行mode命令。但是,通过Customize接口 1 设置mode变量将始终正确启用或禁用该模式,因为Customize会自动为您运行mode命令。 / p>

1 见:(emacs) Easy Customization

答案 2 :(得分:0)

在init文件中使用它:

(add-hook 'c-mode-common-hook
               (lambda () (subword-mode 1)))