奇怪的Emacs行为(在屏幕上产生垃圾)

时间:2014-07-19 17:11:38

标签: emacs elisp

我试图通过编写一些简单的宏来学习Emacs和eLisp。这是其中之一:

(global-set-key (kbd "C-c d")        'local-delete-line)
(defun local-delete-line ()
  "deletes 1 line"
  (interactive)
  (beginning-of-line)
  (set-mark-command)
  (next-line)
  (delete-region))

不幸的是,在触发C-c d(或我global-set-key设置的任何其他热键)之后,Emacs会回复:

screenshot

任何可能导致这种情况的想法?

要进行问题排查,我已删除了我的整个.emacs文件,创建了一个空文件,并且我只添加了local-delete-line函数的定义以及{{1}命令。调用函数时,Emacs仍会产生垃圾。

1 个答案:

答案 0 :(得分:3)

  1. 首先阅读set-mark-commandC-h f set-mark-command)的文档。看看它没有在您编写的代码中设置标记的内容。查看需要多少参数

  2. 阅读delete-region的文档:需要两个参数

  3. 执行M-: (setq debug-on-error t),然后尝试您的食谱。回溯缓冲区会告诉你你做错了什么。

  4. 说明你要做的是什么。到目前为止,您似乎只想删除或删除一行。如果是这样,C-k会出现什么问题?