我通常在我的临时缓冲区中使用 elisp 代码。我发现很难使用以这种方式移动光标的 elisp 代码,因为我不知道如何将用于编辑代码的缓冲区和用于测试代码的缓冲区分开。
例如,如果我想玩以下代码:
(backward-up-list 1)
(backward-sexp 1)
(kill-sexp 2)
来自 searching with intelligent bracket counting elisp ,我想一次运行一行并查看每行的作用。但是代码将插入符移动到我粘贴该代码的临时缓冲区中,并且我已经在使用该插入符来编辑或运行代码。另一个问题是该代码应该在 TeX 文档上进行测试,而我的暂存缓冲区不是 TeX 文档。
这一切都归结为如何区分画家和绘画。
虽然在那个例子中,只要看一下 C-h f 手册就足以了解发生了什么。但这只是因为这个示例代码足够简单。
最佳答案
使用 edebug 编译函数( C-u C-M-x
而不是 C-M-x
),切换到缓冲区进行实验,通过 M-: 调用函数,然后在调试器中单步执行( n
)。
否则,学习以更大的块思考,并使用 M-: 在测试缓冲区中进行测试。这就是我对几乎所有事情所做的,包括非常复杂的代码,例如 cperl-mode .
关于emacs - 如何轻松地试验涉及移动光标(插入符号)的 elisp 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1068320/