qed
qed

Reputation: 23134

wrong type argument commandp with a custom function in emacs

I know this type of question have been asked by many people, but I have read many similar posts and still have no idea what to do. So here is the elisp code in .emacs:

;; 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)))

I also tried to add (interactive) into the function, it didn't work.

Upvotes: 1

Views: 1877

Answers (1)

qed
qed

Reputation: 23134

Just to keep the record here, this seemed to do the trick, not sure if it's optimal though:

;; 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)

Taking Dan's advice, I changed the above into:

;; 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)

Upvotes: 1

Related Questions