Emacs:尝试调用我的函数时错误的参数数量错误

sig*_*hol 5 emacs elisp

我正在尝试创建一个移动到行尾并插入换行符的函数.

(defun newline-below ()
    (interactive)
    (move-end-of-line)
    (newline)
)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试运行它时,我收到了一个神秘的错误.

newline-below: Wrong number of arguments: #[(arg) "
Run Code Online (Sandbox Code Playgroud)

cho*_*oba 12

该函数move-end-of-line需要一个参数(C-hf当光标在函数上时尝试).只是nil可能为你的目的工作:

(move-end-of-line nil)
Run Code Online (Sandbox Code Playgroud)

  • 方便的技巧:`Mx toggle-debug-on-error`.现在运行您的函数,您将获得一个堆栈跟踪,显示错误的确切位置.有关如何使用调试器的详细信息,请参阅`M- :( info"(elisp)Debugger")`. (9认同)
  • 一个更方便的技巧:Mx eldoc-mode - 当你的点位于一个函数内时,你可以看到必需和可选的参数 (2认同)