Drkcore

Drkcore

Drkcore

‹›

15112012 Emacs

local-set-keyに出てくる(interactive)

よく分からないでコピペで増やしたlocal-set-keyだが

(local-set-key "\C-j" (lambda () (interactive) (insert " -> ")))

と、ラムダ式に(interactive)が含まれている。試しに(interactive)を排除して

(local-set-key "\C-j" (insert " -> ")))

を評価(C-x C-e)してC-jを押してみると

Wrong type argument: commandp, (lambda nil (insert " -> "))

とミニバッファにエラーが出力される。commandpとは一体なんだろうか?と f1 f commandp

(commandp FUNCTION &optional FOR-CALL-INTERACTIVELY)

commandかどうかを判定する関数らしいが、よく分からんのでf1 f local-set-keyで見てみると

(local-set-key KEY COMMAND)

関数ではなくてCOMMANDである必要があるらしい。

コマンドとは、定義の最初にinteractiveスペシャルフォームが置かれた関数ですEmacsLISPテクニックバイブル p.79

EmacsLISPテクニックバイブルにちゃんと書いてあった。

ProductName Emacs Lispテクニックバイブル
るびきち
技術評論社 / 3129円 ( 2011-11-26 )


最近elispをよく読むのでかなりお世話になっている本だ。

About

  • 仕事変わりました(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒大好き
  • ドラムンベースからミニマルまで
  • ポケモンGOコンプ

Tag

PythonDeep LearningjavascriptchemoinformaticsEmacssakeand more...

Ad

Amazon

© kzfm 2003-2018