我熟悉方案,但对emacs(从VIM切换)和elisp很新。
我知道如何执行以下操作:
我需要帮助做一些更先进的事情:
我希望F3等于:
我意识到要求别人为我写剧本是一种糟糕的形式;但是,如果有人能做到这一点,我会很快从中学到东西。 [并且它允许我通过研究你的例子来做更复杂的脚本编写。]
谢谢!
答案 0 :(得分:2)
这不是你想要的,但应该是进一步调整的良好起点:
(defun slime-run-test ()
(interactive)
(slime-interactive-eval "(test/run)")
(slime-pop-to-buffer (slime-output-buffer) t))
(global-set-key (kbd "<f3>") 'slime-run-test)
答案 1 :(得分:1)
我不使用粘液,但假设它使用了comint-mode,那么我认为以下可能会有效:
(defun my-slime-test-run ()
(interactive)
(delete-other-windows)
(split-window-below)
(with-selected-window (next-window)
(switch-to-buffer "slime-repl")
(goto-char (point-max))
(insert "(test-run)")
(comint-send-input)))
(global-set-key (kbd "<f3>") 'my-slime-test-run)
可能有一种更好的方法可以做到这一点,但希望这能让您对如何编写elisp函数以在编辑器中执行任务有所了解(并注意函数如何读取非常类似于一组编辑器指令) - 只需将您使用的按键转换为等效代码,甚至根本不编写代码,只需记录和保存键盘宏,就可以做很多事情。
使用 Ch f name-of-the-function
RET 获取该函数中任何函数/宏调用的文档。
对于键绑定,我使用 Ch k F3 来检查Emacs如何引用该键,然后将该字符串用作参数到kbd
(并注意如何使用该序列来查找绑定到任何给定键序列的函数的名称,如果需要,可以在代码中使用该函数的名称。)
如果您还不了解它们,很多事情就不那么明显了,但只有这样的代码库才会出现这种情况(并且可以追溯到这一点)。
最棒的是,如果你不知道你在寻找什么,你总是可以搜索匹配模式的函数名称 Cu Ch a (类似于变量,值,库和文档;有关此工具的更多信息,请参阅 M - : (info "(emacs) Apropos")
RET 。加上信息手册(包含索引 - 在任何特定手册中按I
或i
,或使用info-apropos
命令一次搜索所有信息手册)。
你可以做的最好的事情之一就是学习如何使用Emacs的自我记录性质来找到你还不知道的事情的答案。