Я новичок. Теперь я хочуemacs режимы автозагрузки
авто запуска yasnippet автозаполнения gtags flymake режимы
, когда я открытии (/ PHP/Java эл/...) файл.
Что мне помещать в файл конфигурации emacs?
Я новичок. Теперь я хочуemacs режимы автозагрузки
авто запуска yasnippet автозаполнения gtags flymake режимы
, когда я открытии (/ PHP/Java эл/...) файл.
Что мне помещать в файл конфигурации emacs?
Как говорит Лиу, вы используете add-hook
, чтобы указать, что действие будет выполняться, когда определенный режим запускается. Документация here. Крючки аналогичны событиям в C# или схеме наблюдателя в ООП.
Каждый режим должен определять крючок, который запускается при запуске этого режима, например. для режима с именем java-mode есть соответствующий крюк под названием java-mode-hook. add-hook
позволяет подключить действие на этот крючок:
(add-hook 'java-mode-hook 'my-action)
Вы можете использовать анонимные lambda
функции для определения действия на месте, например, так:
(add-hook 'java-mode-hook (lambda() (message "hello from java-mode")))
Это будет печатать сообщение при каждом запуске java-режим.
Обычно лучше определить именованную функцию для этой цели. Если вы используете именованные функции, то add-hook
гарантирует, что одна и та же функция не будет вызываться несколько раз.
(defun hello()
(message "hello from java-mode"))
(add-hook 'java-mode-hook 'hello)
Режимы редактирования языков получены из прог-режима. Если вы хотите запустить действие при запуске любого языка программирования, вы добавите свою функцию в prog-mode-hook
.
Вам необходимо вручную настроить режим автозавершения для каждого режима вы хотите использовать его для каждого режима, добавить этот режим в ac-modes
списке:.
(add-to-list 'ac-modes 'java-mode)
В качестве примечания, вы будете хотите использовать flyspell-prog-mode
для программирования языковых режимов, поэтому вы можете получать только орфографические предложения в комментариях и строковых литералах.
(defun on-prog-mode()
(flyspell-prog-mode t))
(add-hook 'prog-mode-hook 'on-prog-mode)
И вы, вероятно, захотите использовать flycheck вместо старого flymake. Flycheck находится в активной разработке и имеет шашки для php.
вы можете добавить так же, как показано ниже:
(global-auto-complete-mode t)
(yas-global-mode 1)
обновит ниже соответственно:
(add-hook 'php-mode-hook (lambda() (flyspell-mode 1)))
(add-hook 'php-mode-hook (lambda()(gtags-mode 1)))
+1 благодарит за вас совет про flycheck – jilen
prog-mode-hook - это то, что я ищу – jilen