関数
type: Function
arguments: autoload FN FILE &optional COMMANDP MACROP
package: lisp
file: misc.l
関数が呼び出された時点でファイルをロードするよう宣言します。
FN : 関数シンボルを指定します。
FILE : ロードするファイルを指定します。
COMMANDP : 実行するときに interactive に実行するかどうかを指定します。
MACROP : マクロかどうかを指定します。
FN が既に関数として定義されている場合はなにもしません。
定義されていない場合は新たに関数を作って FN の一時的な定義とします。この
関数は初めて FN が呼ばれたときに実行され、指定されたファイル FILE から本
来呼び出されるべき FN の定義をロードします。もし FILE 中に FN の定義が存
在しなければエラーとなります。
関数を呼び出す側からは、元々そのファイルがロードされていたかのように実行
を続けます。めったに使わない関数を autoload で宣言しておくとメモリ消費
量を節約できます。また、起動時にファイルをロードしないので起動が速くなり
ます。
使用例:
;;; defs.lより
(autoload 'search-dialog "dialogs" t)
(autoload 'replace-dialog "dialogs" t)
(autoload 'count-matches-dialog "dialogs" t)
(autoload 'goto-line-dialog "dialogs" t)
(autoload 'open-file-dialog "dialogs" t)
seealso: mc-autoload
seealso: autoload-function-p
seealso: 各種ロード関係の関数の違い
type: Function
arguments: autoload-function-p DEF
package: lisp
file: misc.l
指定された関数がautoloadされたか否かを返します。
nil 指定された関数がautoload済み
もしくはautoloadしない関数の場合
t 指定された関数がautoload前の場合
使用例:
(export 'lisp-info-F1)
(autoload 'lisp-info-F1 "info-modoki" t)
(autoload-function-p 'lisp-info-F1)
=> t
(lisp-info-F1)
(autoload-function-p 'lisp-info-F1)
=> nil
seealso: autoload
type: Function
arguments: beginning-of-defun &optional (ARG 1)
package: editor
file: sexp.l
カーソルを関数定義の先頭に移動します。[ESC C-a]
seealso: end-of-defun
type: Function
arguments: commandp OBJECT
package: editor
file: builtin.l
関数が interactive 宣言されていれば tを返し、そうでなければnilを返します。
seealso: interactive
seealso: interactive-p
type: Macro
arguments: defun NAME (&rest LAMBDA-LIST) &body BODY
package: lisp
file: evalmacs.l
関数を定義します。NAME がすでに関数定義を持つ場合は上書きされます。
BODY の先頭に documentation 文字列や interactive 宣言を含めることができます。
seealso: lambda
type: Function
arguments: digit-argument RAW &optional ARG
package: editor
file: cmds.l
後に続くコマンドに前置引数を渡します。[ESC 0 ... ESC 9]
seealso: universal-argument
seealso: negative-argument
type: BufferLocal
package: editor
バッファ中の関数の一覧を取得します。行及び関数名を要素に持つリス
トで得られます。list-functionで使用されています。
使用例:
; listfn.lで評価
(funcall ed::build-summary-function)
=> ((10 "lisp-build-summary-of-functions") (39 "lisp-maketags"))
seealso: list-function
type: Function
arguments: end-of-defun &optional (ARG 1)
package: editor
file: sexp.l
カーソルを関数定義の末尾に移動します。[ESC C-e]
seealso: beginning-of-defun
type: Special Form
arguments: flet ({(NAME LAMBDA-LIST {declaration}* [doc-string] {FORM}*)}*) {FORM}*
package: lisp
file: builtin.l
ローカルな関数を定義してフォームを評価します。フォーム内で flet で
定義された関数は、外部で定義された同じ名前の関数よりも優先されます。
関数は同時に複数定義できます。
それぞれの定義方法は defun のように、最初に関数名、
次にパラメータのリスト(&optional, &rest, &key パラメータも使えます)、
そしてoptional declaration と docstring、そして最後にフォームと続きます。
(flet ((safesqrt (x) (sqrt (abs x))))
;; The safesqrt function is used in two places.
(safesqrt (apply #'+ (map 'list #'safesqrt longlist))))
seealso: labels
seealso: macrolet
type: Special Form
arguments: interactive {INTERACTIVE-STRING {PARAMETER}*|LIST}
package: editor
file: builtin.l
関数が対話的に実行可能であること、すなわちコマンドであることを宣言します。
このフォームを定義に含む関数は対話的に実行できます。
対話的に実行とは具体的には
・キーバインドでの実行
・M-x (execute-extended-command) での実行
・ツールバーでの実行
などです。
実行に引数が必要でない関数では必要ありませんが、引数を与えなければならな
い関数の場合は、INTERACTIVE-STRINGによって対話的に実行したときに関数に渡
す引数の値やその与え方を制御する必要があります。
INTERACTIVE-STRINGの構成は以下のようになります。
* 任意。書込み禁止バッファでの実行を禁止します。
0 任意。プロンプトに数引数がつきます。
指定子 引数に与えるデータとその与え方の指定になります。
任意の文字列 ミニバッファで引数を与えるときのプロンプトになります。
\n 区切り文字です。続けて次の引数についての記述ができます。
PARAMETERでは指定子に対する設定を記述できます。
:defaultN 初期表示
:historyN 履歴情報
:titleN ダイアログのタイトル
Nの部分には何番目の指定子に対する設定かという数値が入ります。
例えば最初の指定子に対する初期表示の指定は:default0で行います。
:defaultNと:titleNで指定するのは文字列、
:historyNで指定するのはminibuffer-history-variableプロパティを持つシンボルです。
履歴のデータはそのプロパティ値が使用されます。minibuf.l参照。
以下、指定子とその動作です。
{属性}
P: Prompt ミニバッファでユーザー入力
M: Must Match 正しく入力されるまで繰り返す
C: Completion 入力候補表示・補完あり
D: Default :defaultN使用可能
H: History :historyN使用可能
T: Title :titleN使用可能
[最終変換値]
{xx} - 関数には xxx 型の値がくる
{xx/yy} - 入力値が省略又は未定義値だと、yy型がくる
{xx|yy} - 入力値が多重値だと、yy の型でくる
{*****} - なんでもあり
{PMCDHT}
a {PMCDH }[symbol] 関数名
B {P CDH }[buffer/string] バッファ名
b {PMCDH }[buffer] 既存のバッファ名
c {P }[character] 文字
C {PMCDH }[symbol] コマンド名
d { }[integer] ポイント位置
D {PMCDHT}[string] ディレクトリ名
e {P CDH }[string] 実行ファイル
F {P CDHT}[string] ファイル名
f {PMCDHT}[string] 既存のファイル名
l {P CDHT}[string|cons] ファイル名(複数可)
M { }[integer] セレクション開始位置
m { }[integer] マーク位置
n {PM }[integer] 整数
N {PM }[integer] 整数(前置引数を優先)
p { }[integer] 前置引数の値
P { }[symbol/nil] 生の前置引数
R { }[integer] セレクション範囲(一つ目がセレクションの始点、二つ目がセレクションの終点)
r { }[integer] リージョン(一つ目がマーク位置、二つ目がポイント位置)
s {P DH }[string] 文字列
S {PMCDH }[symbol] シンボル
v {PMCDH }[symbol] 変数名
X {P }[*****] S式(引数には評価した値が渡される)
x {P }[*****] S式そのもの
z {PMC H }[encoding] 文字エンコーディング
Z {PMC H }[encoding] 文字エンコーディング(自動判定を除く)
新たに任意の指定子を作成することもできます。
*interactive-specifier-alist*に指定子にあたる文字と処理の関数シンボルを
登録します。keymap.lを参照。
また、LISTにて指定子に依らない任意の動作をさせることもできます。
cmds.lのrepeat-complex-commandの定義などを参照。
備考:
・0zと0Zという指定は特別に、前置引数が与えられたときのみミニバッファで入
力待ちになるという動作になります。
・PARAMETERで:emacsにnon-nilを指定するとemacsとの互換性を考慮した動作に
なります。
seealso: commandp
seealso: long-operation
seealso: *prefix-args*
seealso: read-buffer-name
seealso: read-char-encoding
seealso: read-command-name
seealso: read-directory-name
seealso: read-exist-buffer-name
seealso: read-exist-file-name
seealso: read-file-name-list
seealso: read-file-name
seealso: read-function-name
seealso: read-integer
seealso: read-sexp
seealso: read-string
seealso: read-symbol-name
seealso: read-variable-name
type: Function
arguments: list-function &rest ARGS
package: editor
file: listfn.l
バッファ中の関数の一覧をダイアログで表示します。選択することで定
義位置にジャンプすることが可能です。バッファ中の関数の一覧は、バ
ッファローカル変数build-summary-functionから取得しています。
seealso: ed::build-summary-function
type: Function
arguments: mark-sexp &optional (ARG 1)
package: editor
file: sexp.l
前方のS式の末尾にマークを設定します。[ESC NUL]
seealso: set-mark-command
type: Function
arguments: negative-argument RAW &optional ARG
package: editor
file: cmds.l
後に続くコマンドに負の前置引数を渡します。[ESC -]
seealso: universal-argument
seealso: digit-argument
type: Function
arguments: universal-argument RAW &optional ARG
package: editor
file: cmds.l
後に続くコマンドに前置引数として 'universal-argument を渡します。[C-u]
'universal-agument を数値として処理する場合は 4 と解釈されます。
seealso: digit-argument
seealso: negative-argument
seealso: *prefix-args*
seealso: *prefix-value*