这是我对解决方案的看法:
(defun insert-test-text ()
(interactive)
(insert "test"))
(add-hook
'text-mode-hook
(lambda ()
(if (string= (file-name-nondirectory (buffer-file-name))
"A.txt")
(local-set-key (kbd "<f5>") 'insert-test-text))))
这将只为名为A.txt
. 当然,您应该根据需要调整代码。
此外,如果您经常编辑文件,请不要忘记为文件添加书签。我有一个非常快速的设置(大约两个键和弦)约 20 个文件/目录。我编辑了很多。此处描述了设置。
UPD
如果您想要单个文件的绑定,只需file-name-nondirectory
像这样删除:
(add-hook
'text-mode-hook
(lambda ()
(if (string= (buffer-file-name)
"~/A.txt")
(local-set-key (kbd "<f5>") 'insert-test-text))))
这是我为保持配置可管理所做的 - 在~/.emacs
:
(defvar dropbox.d "~/Dropbox/")
(defvar emacs.d (concat dropbox.d "source/site-lisp/"))
(add-to-list 'load-path emacs.d)
(defun add-subdirs-to-load-path (dir)
(let ((default-directory dir))
(normal-top-level-add-subdirs-to-load-path)))
(add-subdirs-to-load-path emacs.d)
(load "init")
;; you can put the code in "source/site-lisp/feature1.el"
(load "feature1")
这就是我的全部内容~/.emacs
- 配置的其余部分是site-lisp
dir 中的相应文件。您可以注释掉(load "feature1")
以暂时关闭它。