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