我希望在打开Emacs时默认启用哪个功能模式。我已将以下行添加到我的.emacs文件中。
(setq which-func-mode t)
(setq which-function-mode t)
当我打开.cpp文件并导航到函数体时,我没有像我应该在底部的状态栏中看到函数名。如果我然后运行M-x which-function-mode,则消息是“禁用了哪个功能模式”,因此它看起来像我的.emacs文件中的行,但不是很有效。
我在.emacs文件中设置了错误的内容还是出现了其他问题?
答案 0 :(得分:6)
不幸的是,setq不适用于此,因为这是一个函数,而不是变量。您需要使用'customize'来设置变量,或者调用'which-function-mode'函数传递't'的值。
'customize'是emacs现在处理大多数软件包功能的方式。经常做“M-x customize-apropos”后跟一个包的名称将为你提供该包的大部分配置选项。如果您知道配置参数的特定名称,还可以使用“customize-variable”转到该特定参数。请注意,'customize-variable'中的项目本身并不总是变量 - 通常自定义调用函数或执行一些其他活动来实际执行配置。
我想你可能想为此使用'自定义'。
M-x customize-variable<RET>
which-function-mode
应该给你以下内容:
将值切换为“on”,然后为当前会话设置并保存以供将来的会话使用。如果您不喜欢自定义,可以从.emacs中调用该函数:
(which-function-mode t)
这是在emacs 23,但我相信22应该是类似的....对于emacs 21,我不相信自定义在那里默认(这已经很长时间了,虽然所以我可能是错的),你可能不得不使用函数调用表单。
答案 1 :(得分:5)
您可能需要一个挂钩,以便在加载文件时自动启用which-func-mode
。
尝试类似:
(add-hook 'c++-mode-hook '(lambda () (which-func-mode t)))
答案 2 :(得分:1)
In your init.el or wherever you store your emacs configuration simply place the following line:
(which-function-mode 1)
它只适用于编程模式和组织模式。我只在.txt文件中测试过,以确保它没有显示出来。如果您需要粒度,请执行以下操作:
(add-hook 'python-mode-hook
(lambda() (which-function-mode 1)))