emacs中带有自定义函数的错误类型参数commandp
我知道很多人都问过这样的问题, 但我读过很多类似的帖子,仍然不知道 怎么办。下面是.emacs中的elisp代码:emacs中带有自定义函数的错误类型参数commandp,emacs,elisp,Emacs,Elisp,我知道很多人都问过这样的问题, 但我读过很多类似的帖子,仍然不知道 怎么办。下面是.emacs中的elisp代码: ;; send line to python console (require 'python-mode) (defun py-execute-line-down () "execute python line and move cursor down" (progn (py-execute-line) (evil-next-line))) (add-hook 'p
;; send line to python console
(require 'python-mode)
(defun py-execute-line-down ()
"execute python line and move cursor down"
(progn
(py-execute-line)
(evil-next-line)))
(add-hook 'python-mode-hook
(lambda () (define-key python-mode-map (kbd "C-c C-j") 'py-execute-line-down)))
我还尝试将交互添加到函数中,但没有起作用。只是为了在此处保留记录,这似乎起到了作用,但不确定它是否最佳:
;; send line to python console
(require 'python-mode)
(defun py-execute-line-down ()
"execute python line and move cursor down"
(interactive)
(py-execute-line)
(evil-next-line 1))
(defun kaiyin-pykeys ()
"python mode custome keys"
(local-set-key (kbd "C-c j") 'py-execute-line-down)
)
(add-hook 'python-mode-hook 'kaiyin-pykeys)
根据丹的建议,我将上述内容改为:
;; send line to python console
(require 'python-mode)
(defun py-execute-line-down ()
"execute python line and move cursor down"
(interactive)
(py-execute-line)
(forward-line 1))
(define-key python-mode-map (kbd "C-c j") 'py-execute-line-down)
对于那些对python模式的源代码感兴趣的人,这里有一个指向原始海报可能正在使用的库的链接:最新版本有一个绿色下载链接。qed:interactive是您所需要的全部。我猜你在添加那一行后没有重新计算函数?还是你放错地方了?应该紧跟在docstring之后。还请注意,您也不需要包装程序。。。另外:对define key的调用不需要进入钩子,每次打开python缓冲区时都会对其进行计算。@phils的注释+1。并确保将interactive放在正确的位置:在文档字符串之后和函数体之前。链接一些类似的问题:,和。我建议将邪恶的下一行1替换为前进行1,以避免在您决定停止使用后一行时引入邪恶依赖。假设您希望在所有python缓冲区中绑定C-cj,我还建议您省去第二个defun和add hook组合,只需将以下内容放到.emacs文件中:define key python mode map kbd C-C j'py execute line down。