我通常在我的暂存缓冲区上使用elisp代码.我发现很难使用以这种方式移动游标的elisp代码,因为我不知道如何分离用于编辑代码的缓冲区和用于测试代码的缓冲区.
例如,如果我想使用以下代码:
(backward-up-list 1) (backward-sexp 1) (kill-sexp 2)
从智能支架计数elisp搜索,我想一次运行一行,看看每行的作用.但代码将插入符号移动到我粘贴该代码的暂存缓冲区中,并且我已经使用该插入符来编辑或运行代码.另一个问题是该代码应该在TeX文档上进行测试,而我的暂存缓冲区不是TeX文档.
这一切都归结为如何将画家和绘画分开.
虽然在那个例子中,只要查看Ch f手册就足以了解正在发生的事情.但这仅仅是因为这个示例代码足够简单.
使用edebug(C-u C-M-x
而不是C-M-x
)编译函数,切换到缓冲区进行试验,通过M-:调用函数,然后n
在调试器中单步执行().
否则,学会用更大的块思考,并用M-:在测试缓冲区中进行测试.这就是我几乎所有的事情,包括非常复杂的代码,如cperl-mode.