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
不會說它完全重複。我在發佈之前找不到它。現在我的問題有一個鏈接到真正的交易:) –