我正在学习Clojure。每天,我打开Emacs并输入以下命令:
C-x 3 ; create a new window on the right
M-x cider-jack-in ; open up a REPL
C-x o ; switch to my left window
C-x C-f code/clojure-projects/something.clj ; open up a file and start coding
我想自动执行这些任务,以便每次Emacs启动时它们都会自动发生。
为此,我需要在~/.emacs.d/init.el
文件的底部添加内容,对吗?
我也想知道将来我可以弄清楚如何做这些事情的过程。
答案 0 :(得分:3)
您可以使用键盘宏。
您的想法是记录您的行为并为行动命名。 Emacs将为您生成代码,您只需设置密钥映射。
首先,您需要开始按C-x (
或<f3>
录制宏并执行命令,直到完成C-x )
或<f4>
以结束宏录制会话
现在您将拥有一个未命名的宏,您可以通过C-x e
或<f5>
来测试它,它将执行所有录制的命令。
现在,您可以按M-x name-last-kbd-macro
命名宏。之后,转到init.el
,然后执行M-x insert-kbd-macro
,这将为您粘贴(fset <macro-name> <your-macro-definition>)
,现在即使您打开新的emacs会话,也可以使用M-x <macro-name>
来调用您的宏
如果您愿意,也可以设置键绑定。例如:
(global-set-key (kbd "C-c a") 'my-macro)
有关详细信息,请查看EmacsWiki: Keyboard Macros
答案 1 :(得分:3)
要让这些命令全部在clojure-mode
启动时运行,请将以下内容添加到~/.emacs.d/init.el
文件中:
(defun my-clojure-startup ()
"Startup sequence for clojure-mode"
(interactive)
(split-window-horizontally)
(cider-jack-in)
(other-window)
(find-file "/your/full/filepath.ext"))
将其绑定到某个键,例如CRTL + c a:
(global-set-key (kbd "C-c a") 'my-clojure-startup)
或者只要你以clojure模式开始就让它运行:
(add-hook 'clojure-mode-hook 'my-clojure-startup)
注意这是未经测试的,因为我没有clojure所以无法看到每个命令的完整行为,但这应该有希望至少给你一个提升。