emacs - 如何轻松地试验涉及移动光标(插入符号)的 elisp 代码?

标签 emacs elisp caret

我通常在我的临时缓冲区中使用 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/

相关文章:

Emacs:临时缓冲区的弹出底部窗口

lisp - 如何在 LISP 中调用 lambda 传递参数

emacs - 开始 elisp 如何在不实际使用除号的情况下编写除号

javascript - 如何使用 javascript 在插入符号位置输入文本?

linux - 如何将emacsclient 背景设置为Emacs 背景?

emacs 智能感知

由于缺少 libpng 无法配置 lubuntu 16.04 上的 Emacs 25.1

debugging - 为什么这些 prog-mode 键绑定(bind)在 emacs-lisp-mode 中不起作用?

javascript - 在输入文本区域中设置插入符号的样式

html - CSS 插入符号在 IE Edge 中不起作用