1
所以我有这个文件称为hooks.el
我emacs.d
有这样的内容:是Emacs应该有一个hook.el文件?
(add-hook 'term-mode-hook ...)
(add-hook 'term-exec-mode-hook ...)
(add-hook 'python-mode-hook ...)
(add-hook 'ido-setup-hook ...)
(add-hook 'makefile-mode-hook ...)
(add-hook 'c-mode-common-hook ...)
(add-hook 'c-mode-hook ...)
(add-hook 'c++-mode-hook ...)
(add-hook 'dired-mode-hook
(lambda()
(define-key dired-mode-map "h" 'dired-previous-line)
(define-key dired-mode-map "j" 'ido-find-file)
;; ...
))
我只是想知道如果我做一些奇怪这里 或者是这确实指定快捷键的惯用方式基于模式?
我的意思是增加挂钩,而不是明明白白写着:
(define-key dired-mode-map "h" 'dired-previous-line)
当然,除非dired
被加载并dired-mode-map
定义这是不行的,因此 挂钩。即使我并不总是使用它们,加载所有模式也可能不是最好的做法, ,只是为了定义自定义快捷方式。 但另一方面,每个新缓冲区都会打开挂钩 - 并且所有这些快捷键都会一遍又一遍地重新定义,而不是一次。
你有什么需要解决的问题?我确信有更好的东西可以切换到。
在此期间,我可以炫耀的书签我hooks.el
:
(defun goto-hook-file()
"Opens hooks.el at point specific to current `major-mode'"
(interactive)
(let ((str-mode-hook (format "%s-hook" major-mode)))
(find-file (concat emacs.d "hooks.el"))
(goto-char (point-min))
(search-forward str-mode-hook nil t)))
您应该更改问题标题;此刻这是相当无意义的。这里有一个非常相似(如果不是很重复的)问答:http://stackoverflow.com/questions/9818307/emacs-mode-specific-custom-key-bindings-local-set-key-vs-define-key。 – phils
不会说它完全重复。我在发布之前找不到它。现在我的问题有一个链接到真正的交易:) –