Emacs Установка которого-функция-режим - PullRequest
3 голосов
/ 13 ноября 2009

Мне бы хотелось, чтобы по умолчанию какой режим работы был включен, когда я открываю Emacs. Я добавил следующие строки в мой файл .emacs.

(setq which-func-mode t) 
(setq which-function-mode t) 

Когда я открываю файл .cpp и перехожу к телу функции, я не вижу имя функции в строке состояния внизу, как я должен. Если я затем запускаю M-x which-function-mode, появляется сообщение «Какой-режим-функция отключен», так что похоже, что строка в моем файле .emacs занимает, но не совсем работает.

Я устанавливаю неправильную вещь в моем файле .emacs или что-то не так?

Ответы [ 3 ]

6 голосов
/ 13 ноября 2009

К сожалению setq не будет работать для этого, так как это функция, а не переменная. Вам нужно либо использовать «customize» для установки переменной, либо вызвать функцию «which-function-mode», передав значение «t».

«Настройка» - это способ, которым emacs в настоящее время занимается настройкой функциональности для большинства пакетов. Часто выполнение «M-x customize-apropos», за которым следует имя пакета, дает вам большинство параметров конфигурации для этого пакета. Если вам известно конкретное имя параметра конфигурации, вы также можете использовать 'customize-variable', чтобы перейти к этому конкретному параметру. Обратите внимание, что элементы в 'customize-variable' не всегда являются переменными сами по себе - часто customize вызывает функцию или выполняет какое-то другое действие для фактического выполнения конфигурации.

Я думаю, что вы, вероятно, хотите использовать «настроить» для этого.

M-x customize-variable<RET>
which-function-mode

должно дать вам что-то вроде следующего:

alt text

Переключите значение на «on», затем установите для текущего сеанса и сохраните для будущих сеансов. Если вам не нравится настройка, вы можете просто вызвать функцию из вашего .emacs:

(which-function-mode t)

Это в emacs 23, но я считаю, что 22 должно быть похожим .... Для emacs 21 я не верю, что настройка была там по умолчанию (это было давно, хотя я мог ошибаться) и вместо этого вам, возможно, придется использовать форму вызова функции.

5 голосов
/ 13 ноября 2009

Вам, вероятно, понадобится ловушка для автоматического включения which-func-mode при загрузке файла.

Попробуйте что-то вроде:


(add-hook 'c++-mode-hook '(lambda () (which-func-mode t)))
1 голос
/ 30 ноября 2014

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)))

...