変数と定数


wild-pathname-p

type: Function
arguments: wild-pathname-p PATHNAME
package: lisp
file: builtin.l
ワイルドカード指定されたパスかどうかを返します。

  t     ワイルドカード指定されたパスです。
  nil   ワイルドカード指定されていません。

使用例:
  ;;; ワイルドカードかどうかを調べてみる。
  (wild-pathname-p "site-lisp/*.l")
  => t

SeeAlso: pathname-match-p
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

values-list

type: Function
arguments: values-list LIST
package: lisp
file: builtin.l
指定されたリストを多値として返します。

  (values-list '(a b c)) == (values a b c)
  (values-list list) == (apply #'values list)

SeeAlso: values
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

values

type: Function
arguments: values &rest ARGS
package: lisp
file: evalmacs.l
多値で値を返します。

C言語では関数は1つの値しか返すことができませんが、Common Lispでは複数の
値を返す事ができます(リストとは違います)。これを多値(関数)と呼びます。
複数の値を返したい時は、 (values 値1 値2 ..)という構文を使います。

多値関数を呼び出す場合には、複数の戻り値を受け取れるように 
multiple-value-bind または multiple-value-listを使って受け取ります。

互換性:
  Common Lispとxyzzyにはあり。
  muleにはなさそう。

SeeAlso: values-list
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

unregister-history-variable

type: Function
arguments: unregister-history-variable VAR
package: editor
file: history.l
変数をヒストリ変数の登録から削除します。

SeeAlso: define-history-variable
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

title-bar-format

type: Variable
package: editor
タイトルバーのフォーマットを設定します。
モードラインのフォーマットと同様です。

使用例:
  (setq title-bar-format "--%*- %b (%M) [%k:%l] %P %f")

パラメタ:
  %*    変更あり          : **
        書込禁止          : %-
        変更あり・書込禁止: %*
        それ以外          : --
  %#*   変更あり: *
        変更なし: (空白) 
  %r    書込可  : (空白)
        書込禁止: % 
  %#r   書込可        : (空白)
        書込禁止      : %
        不完全バッファ: # 
  %p    プログラム名 
  %v    バージョン 
  %h    ホスト名 
  %#h   @ホスト名 
  %b    バッファ名 
  %f    File: ファイル名 
  %#f   ファイル名 
  %F    File: ファイル名。ファイル名がなければバッファ名 
  %#F   ファイル名。ファイル名がなければバッファ名 
  %M    モード(マイナーモード含む) 
  %m    モード 
  %k    エンコーディング 
  %l    改行コード 
  %i    IMEの状態。mode-line-formatのみ。 
  %P    カーソル位置。mode-line-formatのみ。

SeeAlso: mode-line-format
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

t

type: Variable
package: lisp
真を表す定数です。

SeeAlso: nil
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

symbol-function

type: Function
arguments: symbol-function SYMBOL
package: lisp
file: builtin.l
シンボルに束縛された関数定義を返します。

  SYMBOL : 関数定義を取得するシンボル名

使用例:
  ;;; 関数定義の取得
  (symbol-function 'foo)
  => 関数が定義されていません: foo
  (defun foo (x) (* x 2))
  => foo
  (symbol-function 'foo)
  => #<lexical-closure: foo>

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

special-form-p

type: Function
arguments: special-form-p SYMBOL
package: lisp
file: builtin.l
シンボルが特殊形式かどうかを返します。

  SYMBOL : 判定するシンボル

戻り値
  nil      シンボルは特殊形式ではない。
  non-nil  シンボルは特殊形式

  ; 特殊形式を書き出してみる
  (do-all-symbols (i "end")
    (and (special-form-p i)
         (format t "~A~%" i)))
  interactive
  save-restriction
  save-excursion
  save-window-excursion
  *byte-code
  macrolet
  setq
  throw
  return-from
  progn
  let*
  go
  labels
  if
  multiple-value-call
  unwind-protect
  multiple-value-setq
  catch
  tagbody
  eval-when
  let
  multiple-value-bind
  block
  function
  quote
  multiple-value-prog1
  flet
  =>"end"

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

special

type: Misc
package: lisp
declare をごらんください。

SeeAlso: declare
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

si:*paste-hook*

type: Variable
package: system
クリップボードから貼り付けるときに実行されます。

SeeAlso: paste-from-clipboard
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

shiftf

type: Macro
arguments: shiftf {PLACE}+ NEWVALUE
package: lisp
file: setf.l
引数として与えられた値の格納場所の内容をシフトさせます。
(shiftf a b c)とすると以下のようになります。

        ┌a ┐  ┌b ┐  ┌c ┐
実行前:│ 1│  │ 2│  │ 3│
        └─┘  └┬┘  └┬┘
              ┌─┘  ┌─┘
          ┌─┘  ┌─┘  
          ↓      ↓      
        ┌a ┐  ┌b ┐  ┌c ┐
実行後:│ 2│  │ 3│  │ 3│
        └─┘  └─┘  └─┘

SeeAlso: rotatef
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

setq-default

type: Macro
arguments: setq-default VAR VAL
package: editor
file: misc.l
シンボルがローカルでない場合のデフォルトの値を設定します。

この関数は、各 symbol のデフォルト値を、(それに対応する) value に設定し
ます。(symbol は評価しませんが) value は評価します。最初の value を返し
ます。 

デフォルト値は、固有のバッファローカル値を持たないバッファで見られます。 

カレントバッファで symbol がバッファローカルでない場合、これは (この)カ
レントバッファで setq を行なうのと同じことになります。 symbol がカレント
バッファでバッファローカルである場合、カレントバッファで見える値ではなく、
他のバッファがまだバッファローカルな値を持たない場合にそこで見える値を設
定します。

使用例:
  (make-variable-buffer-local 'local)
  => local
  ;; バッファ foo 中:
  (setq local 'foo)
  => foo
  ;; バッファ bar 中:
  local
  => nil
  (setq-default local 'default)
  => default
  local
  => default
  (setq local 'bar)
  => bar
  ;; バッファ baz 中:
  local
  => default
  ;; バッファ foo 中:
  (setq local 'foo)
  => foo
  (default-value 'local)
  => default

SeeAlso: default-value
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

setq

type: Special Form
arguments: setq {VAR FORM}*
package: lisp
file: builtin.l
変数に値を設定します。

  (setq 変数1 値1 変数2 値2 ... 変数N 値N)

上記の様に変数と値の組を任意の数だけ並べることができます。

  (setq foo '(1 2 3)) = (set 'foo '(1 2 3))

使用例:
  ;;; setとsetqで同じことをしてみる。
  (set 'foo '(2 3 4))   => (2 3 4)
  foo                   => (2 3 4)
  (setq foo '(1 2 3))   => (1 2 3)
  foo                   => (1 2 3)

SeeAlso: setf
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

setf

type: Macro
arguments: setf {PLACE NEW-VALUE}*
package: lisp
file: setf.l
このマクロは、変数にアクセスし、その値を変更するために使われます。従来用
いられてきたsetqよりも汎用的であり、setqと全く置き換えて使用することがで
きます。PLACEは、アクセスしようとするデータオブジェクトのある場所を指し、
NEW-VALUEを評価した値がその場所に書き込まれます。

setfは、いくつでもPLACEやNEW-VALUEの対でも受け付けます。そして、同時にで
はなく、順番に値を割り当てます。つまり、最初の引数の対は、二番目の対が評
価される前に評価され、PLACEによって示される場所に値が書き込まれています。
このように、二番目の引数の対は、最初の対の評価によって割り当てられた値を
使うことが可能です。setfは、最後に評価された引数の対によって割り当てられ
た値、あるいは、まったく引数が与えられなかった場合は、nilを返します。

PLACEの形式は以下のどのようなものも可能です:

(1)変数名(レキシカル変数でもスペシャル変数でもよい)

  (setf hoge 1); 変数hogeに1を代入する
  => 1
  hoge
  => 1

(2)アクセス関数
 * 構造体(構造体名+変数)

  (defstruct foo a b c); 構造体fooを宣言する
  => #<structure-definition: foo>
  (setf hoge (make-foo)); hogeに空のfoo構造体を代入する(ここのsetfはsetqでもよい)
  => #S(foo a nil b nil c nil)
  (setf (foo-a hoge) 10); hogeのスロットaに10を代入する
  => 10
  hoge
  => #S(foo a 10 b nil c nil)

 * 配列(aref, svref, fill-pointer)

  (setf hoge (make-array 3)); hogeに空のベクタを代入する(ここのsetfはsetqでもよい)
  => #(nil nil nil)
  (setf (aref hoge 1) 5); hogeベクタの2番目の数値を5にする
  => 5
  hoge
  => #(nil 5 nil)

 * リスト(car, cdr, first, rest, etc...)

  (setf hoge '("a" "b" "c"))
  => ("a" "b" "c")
  (setf (car (cdr hoge)) "d")
  => "d"
  hoge
  =>("a" "d" "c")

 * 属性リスト(get, getf, symbol-plist)

  (setf (get 'Japan 'language) "Japanese")
  => "Japanese"
  (setf (get 'Japan 'population) 120000000)
  => 120000000
  (symbol-plist 'Japan)
  => (population 120000000 language "Japanese")

 * その他(symbol-value, gethash, symbol-function, documentation, macro-function)

SeeAlso: setq
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

set-variable

type: Function
arguments: set-variable VAR
package: editor
file: cmds.l
変数 VAR をプロンプトから入力した値に設定します。[C-x a]
VAR の値が文字列なら文字列として、それ以外なら S 式として入力を読み取ります。

VAR が boundp でないとエラーになります。

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

set-default

type: Function
arguments: set-default SYMBOL VALUE
package: lisp
file: builtin.l
この関数は、ただ 1つの symbol と 1 つの value のみを許す点と、その両方を
評価する点とを除き setq-default と同じです (setq-default 参照)。

使用例:
  (set-default (car '(a b c)) 23)
  => 23

SeeAlso: setq-default
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

set-buffer-eol-code

type: Function
arguments: set-buffer-eol-code CODE &optional BUFFER
package: editor
file: builtin.l
バッファの改行コードを設定します。
引数として改行コードの種類を表す定数が用意されています。
昔は、set-buffer-newline-codeという名称でしたが、xyzzy 0.2.0.121 からこ
の名前に変更されました。

  CODE:バッファの改行コードの種類を指定します。
        LFの場合        *eol-lf*        0
        CRLFの場合      *eol-crlf*      1
        CRの場合        *eol-cr*        2

使用例:
  ;;; バッファの改行コードをLFに変更する。
  (set-buffer-eol-code *eol-lf*)
  => t

参考:
  Changelogのxyzzy 0.2.0.121を参照のこと

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

set

type: Function
arguments: set SYMBOL VALUE
package: lisp
file: builtin.l
シンボルに値を束縛します。

  SYMBOL : シンボル名
  VALUE  : 設定する値

使用例:
  ;;; fooというシンボルに値を束縛してみる。
  (boundp 'foo)         => nil
  (set 'foo 2)          => 2
  (boundp 'foo)         => t
  foo                   => 2

SeeAlso: get
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

rotatef

type: Macro
arguments: rotatef {PLACE}*
package: lisp
file: setf.l
引数として与えられた値の格納場所の内容をローテーションさせます。

        ┌a ┐  ┌b ┐  ┌c ┐
実行前:│ 1│  │ 2│  │ 3│
        └┬┘  └┬┘  └┬┘
      ┌─┘  ┌─┘  ┌─┘
   (*)┘  ┌─┘  ┌─┘  ┌─(*)
          ↓      ↓      ↓
        ┌a ┐  ┌b ┐  ┌c ┐
実行後:│ 2│  │ 3│  │ 1│
        └─┘  └─┘  └─┘
使用例:
  ;;; a b cに数値を入れてrotatefする。
  (setq a 1 b 2 c 3)    => 3
  (list a b c)          => (1 2 3)
  (rotatef a b c)       => 1
  (list a b c)          => (2 3 1)

SeeAlso: setf
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

register-history-variable

type: Function
arguments: register-history-variable VAR
package: editor
file: history.l
すでに定義された変数 VAR をヒストリ変数に登録します。
ファイルに書き込まれるため、変数の内容は readable である必要があります。
readable であるとは、具体的に言うと「文字、文字列、数値、シンボルと
それらのリストで構成されるデータ」のことです。

  VAR : ヒストリ変数に登録する変数のシンボル、もしくはそれらのリスト

SeeAlso: define-history-variable
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

quote

type: Special Form
arguments: quote OBJECT
package: lisp
file: builtin.l
OBJECTを評価せずに返します。
single quoteで代用されます。

使用例:
  ;;; quoteと'を使ってみる。
  (quote x)             => x
  'x                    => x
  (eq (quote x) 'x)     => t

SeeAlso: ``'(backquote)
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

psetq

type: Macro
arguments: psetq {VAR FORM}*
package: lisp
file: evalmacs.l
変数に値を設定します。

  (psetq 変数1 値1 変数2 値2 ... 変数N 値N)

上記の様に変数と値の組を任意の数だけ並べることができます。 

setqと似ていますがsetqが頭から順に変数に束縛していくのに対し、psetqは値
を全て評価した上で束縛します。

使用例:
  ; psetq の場合
  (let ((from 1)
        (to 100))
    (psetq from to to from)
    (values from to))
  =>100
  =>1

  ; setq の場合
  (let ((from 1)
        (to 100))
    (setq from to to from)
    (values from to))
  =>100
  =>100

SeeAlso: setq
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

post-buffer-modified-hook-enabled-p

type: Function
arguments: post-buffer-modified-hook-enabled-p &optional BUFFER
package: editor
file: builtin.l
バッファでpost-buffer-modified-hookが有効かを判定します。
[xyzzy:06354]を参照
xyzzy 0.2.1.186〜

SeeAlso: enable-post-buffer-modified-hook
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

post-buffer-modified-hook

type: Variable
package: editor
任意のバッファで任意の操作が行われたときに呼び出されます。
[xyzzy:06354]を参照
xyzzy 0.2.1.186〜
  
使用例:
  (enable-post-buffer-modified-hook t)
  (defun buffer-modified-hook (buffer operation from to undo-p)
    (message "ope:~A  undo:~A from:~d to:~d" operation undo-p from to))
  (add-hook 'post-buffer-modified-hook 'buffer-modified-hook)

SeeAlso: enable-post-buffer-modified-hook
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

nil

type: Variable
package: lisp
偽を表す定数です。

SeeAlso: t
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

need-not-save

type: BufferLocal
package: editor
保存する必要があるかどうかを設定します。
個々のバッファ毎や特定のモードだけしたくないのであれば、使用例の様にロー
カル変数にします。例えば、*scratch*の様に書き捨てたりするバッファでは、
保存の必要はないので、tになっています。

  t     保存の必要はない
  nil   保存する

使用例:
  ;;; 現在のバッファは保存の必要はなし。
  (make-local-variable 'need-not-save)
  => t
  (setq need-not-save t)
  => t

SeeAlso: need-buffer-save-p
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

multiple-value-setq

type: Special Form
arguments: multiple-value-setq VARIABLES FORM
package: lisp
file: builtin.l
返された多値を個々の変数に設定します。
変数の個数よりもフォームが返した値の数が多いときには余った分は捨てられま
す。少ない場合には、足りない分だけnilが設定されます。

  VARIABLES : 変数のリスト
  FORM      : 評価するフォーム

使用例:
  ;;; valuesで多値を返した場合
  (setq a (values 1 2)) => 1
  a                     => 1
  (multiple-value-setq (a b) (values 1 2))
                        => 1
  a                     => 1
  b                     => 2

SeeAlso: multiple-value-bind
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

multiple-value-list

type: Macro
arguments: multiple-value-list FORM
package: lisp
file: evalmacs.l
関数が返した多値をリストで返します。

使用例:
  (defun foo () (values 1 2 3))
  => foo
  (foo)
  => 1
     2
     3
  (multiple-value-list (foo))
  => (1 2 3)

SeeAlso: values
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

multiple-value-bind

type: Special Form
arguments: multiple-value-bind ({VAR}*) VALUES-FORM {declaration}* {FORM}*
package: lisp
file: builtin.l
フォームが返す多値を受け取ります。広井さんの"xyzzy Lisp Programming"の
解説が分かり易いので掲載の許可を頂きました。以下を参照して下さい。

--- 引用開始  ---
複数の値を受け取るには、マクロ multiple-value-bind を使うと簡単です。 

multiple-value-bind (&rest vars) values-form &rest form

multiple-value-bind は、多値を返す関数 values-form を評価し、その結果を 
vars で定義した変数にセットします。変数は局所変数として設定されるので、
multiple-value-bind を実行している間だけ有効です。簡単な例を示しましょう。
Common Lisp には、整数でない値を整数に変換する関数 floor, ceiling, 
truncate, round が定義されています。これらの関数は2つの値(多値)を返します。

  (truncate 10 3)
  => 3

  (multiple-value-bind
  (q r)
  (truncate 10 3)
  (format nil "商 ~D, 余り ~D~%" q r))
  => "商 3, 余り 1"

関数 truncate は割り算を行って商と余りを返します。ふつうに truncate を呼
び出すと商を返すだけですが、multiple-value-bind を使うと、商のほかに余り
も受け取ることができます。q と r は truncate が返す値を受け取る変数です。
次に、truncate を評価して結果を変数にセットします。あとは、残りの form 
を順番に評価していきます。 multiple-value-bind は最後に評価した form の
値を返します。

もしも、返される値よりも変数の個数が多い場合、残りの変数には nil がセッ
トされます。逆に、返される値が変数よりも多い場合、余分な値は捨てられます。
次の例を見てください。

  (multiple-value-bind (q)
  (truncate 10 3)
  (list q))
  => (3)
  
  (multiple-value-bind (q r s)
  (truncate 10 3)
  (list q r s))
  => (3 1 nil)

最初の例では、変数 q しか定義されていないので、 q には商がセットされます
が余りは捨てられます。次の例では、変数 s が定義されていますが、truncate 
は2つの値しか返さないので、 s には nil がセットされます。
--- 引用終了 ---

SeeAlso: values
Link: http://www.geocities.jp/m_hiroi/
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

mode-name

type: BufferLocal
package: editor
モードの名前を格納しているローカル変数です。
?mode-nameとbuffer-modeは必ずローカル変数になるのでしょうか?

SeeAlso: buffer-mode
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

makunbound

type: Function
arguments: makunbound SYMBOL
package: lisp
file: builtin.l
指定されたシンボルの値への束縛を解消します。
これ以降boundpはnilを返すようになります。シンボルへの値と関数定義の束縛
は独立しているので、makunboundをしてもfboundpの結果は変わりません。

使用例:
  ;;; 束縛を解消してみる。
  (set 'foo 2)          => 2
  (boundp 'foo)         => t
  (makunbound 'foo)     => foo
  (boundp 'foo)         => nil

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

make-list-from-keyword-table

type: Function
arguments: make-list-from-keyword-table HASH
package: editor
file: kwd.l
キーワードハッシュテーブルから補完用のリストを作成します。

  HASH:キーワードハッシュテーブル(*xxxx-keyword-hash-table*)を指定

使用例:
  ;;; CSSのキーワードハッシュテーブルを元に
  ;;; 補完用リストを作成して、do-completionする。
  (defun css-completion ()
    (interactive)
    (or *css-completion-list*
        (setq *css-completion-list* (make-list-from-keyword-table *css-keyword-hash-table*))
        (return-from css-completion nil))
    (let ((opoint (point)))
      (when (skip-syntax-spec-backward "w_")
        (let ((from (point)))
          (goto-char opoint)
          (do-completion from opoint :list-ignore-case *css-completion-list*)))))

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

let*

type: Special Form
arguments: let* ({VAR|(VAR [VALUE])}*) {declaration}* {FORM}*
package: lisp
file: builtin.l
letとよく似ています。letと異なり、VARの初期化に先に定義した他のVARを参照
することが可能です。

使用例:
  ;;; letとlet*の違い
  (setq Y 2)
  => 2
  (let (X (Y 1) (Z Y)) (list X Y Z))
  => (nil 1 2)
  (let* (X (Y 1) (Z Y)) (list X Y Z))
  => (nil 1 1)

SeeAlso: let
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

let

type: Special Form
arguments: let ({VAR|(VAR [VALUE])}*) {declaration}* {FORM}*
package: lisp
file: builtin.l
ローカルな変数を定義してフォームを評価します。

SeeAlso: let*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

lambda-parameters-limit

type: Variable
package: lisp
lambdaに与えることのできる引数の個数の限界値

参照例: 
  lambda-parameters-limit
  => 536870911

SeeAlso: call-arguments-limit
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

lambda-list-keywords

type: Variable
package: lisp
file: evalmacs.l
ラムダリストキーワードとして使えるシンボルのリストです。

参照例:
  lambda-list-keywords
  =>(&optional &rest &key &aux &body &whole &environment)

SeeAlso: interactive
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

function

type: Special Form
arguments: function FN
package: lisp
file: builtin.l
関数の関数定義を返します。#'と同じです。

使用例:
  ;;; #'とfunctionとsymbol-functionを比べてみる。
  (defun foo (x) (* x 3))
  => foo
  #'foo
  => #<lexical-closure: foo>
  (function foo)
  => #<lexical-closure: foo>
  (symbol-function 'foo)
  => #<lexical-closure: foo>

SeeAlso: quote
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

fmakunbound

type: Function
arguments: fmakunbound SYMBOL
package: lisp
file: builtin.l
指定されたシンボルの関数定義への束縛を解消します。
これ以降fboundpはnilを返すようになります。シンボルへの値と関数定義の束縛
は独立しているので、fmakunboundをしてもboundpの結果は変わりません。

使用例:
  ;;; 関数定義への束縛を解消してみる。
  (defun foo (x) (* x 3))       => foo
  (fboundp 'foo)                => t
  (fmakunbound 'foo)            => foo
  (fboundp 'foo)                => nil

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

enable-post-buffer-modified-hook

type: Function
arguments: enable-post-buffer-modified-hook ENABLE &optional BUFFER
package: editor
file: builtin.l
post-buffer-modified-hookを有効にします。

xyzzy 0.2.1.186〜

SeeAlso: post-buffer-modified-hook-enabled-p
Link: [xyzzy:06354]
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

ed::*register-alist*

type: Variable
package: editor
file: register.l
レジスタに格納されている値を保持する変数。
中身は (name . datum) の形の連想リストです。
emacs と違い name にはどんな文字でも入るようです。

datum としては(通常は)以下のものが使用できます。
  マーカー
  文字列
  矩形領域(文字列のリスト)
  window configuration

SeeAlso: ed::get-register
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

defvar-local

type: Macro
arguments: defvar-local NAME INITIAL-VALUE &optional DOC
package: editor
file: misc.l
変数NAMEがバッファ毎に異なる値を持つようにします。関連する関数として、
defvar/make-local-variable等がありますが、それぞれ機能が異なります。
defvar-localはdefvarと異なり、スペシャル変数とはならないので注意が必要です。

  defvar              : スペシャル変数を作る。
  defvar-local        : 全バッファで変数が独自の値を持つようにする。
  make-local-variable : 特定のバッファで変数が独自の値を持つようにする。

また、defvar-localだけではその変数はローカル変数にはならないようです。バ
ッファでsetqをして初めてローカルになる(local-variable-pがtになる)よう
です。

使用例:
  ;;; defvarとdefvar-localを使ってダイナミックかレキシカルかを確認する。
  (defvar var 3)
  => var  
  (defvar-local var-local 3)
  => var-local
  
  (defun foo () (let ((var 4) (var-local 4)) (bar)))
  => foo
  (defun bar () (format nil "var : ~S, var-local : ~S" var var-local))
  => bar
  
  (foo)
  => "var : 4, var-local : 3"
(defvar-local *dabbrevs-case-fold* nil)

SeeAlso: make-local-variable
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

defvar

type: Macro
arguments: defvar NAME &optional (INITIAL-VALUE () SV) DOC
package: lisp
file: evalmacs.l
グローバルなスペシャル変数を宣言します。ダイナミックなスコープを持ちます。

SeeAlso: defparameter
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

defstruct

type: Macro
arguments: defstruct NAME-AND-OPTIONS &rest REST
package: lisp
file: struct.l
構造体を定義します。C言語のstruct文に相当します。
オプションとして以下のものを指定できます。
以下、xxxx の部分には構造体名が入ります。

  :conc-name         通常、xxxx-スロット名 という名前を持つ関数で変数に
                     アクセスしますが、この名前を変更します。xxxx- 
                     の部分に相当する名前を指定します。
  :constructor       指定したコンストラクタを生成します。
                     複数の :constructor 宣言することができます。 引数には
                       コンストラクタ名 (変数名1 変数名2 ... 変数名n)
                     の様に指定します。&key や &optionalを使用したり、
                     スロットのデフォルト値とは異なるデフォルト値を指定できま
                     す。
                     コンストラクタを明示的に生成しても、xyzzyの場合、暗黙的な
                     コンストラクタが生成されてしまいますが、この動作はCLtL2の
                     示す動作と異なります。
                     これ以上の詳細は不明です。
  :copier            コピー関数名を指定したものに変更します。異なる動作をする
                     関数を指定できるわけではありません。
                     コピー関数は、新しい構造体オブジェクトを作ってスロットを
                     コピーします。新旧の構造体で各スロットは、同じオブジェク
                     トを共有します。
  :predicate         指定された構造体であるか否かを調べる関数名を指定します。
                     この名前を持つ述語をシステムが生成します。
                     デフォルトは、 xxxx-p です。
  :include           他の構造体名を指定することで、構造体を継承します。
                     継承した構造体にある変数の宣言が、この構造体でも宣言され
                     ているものとして扱われます。
                     これ以上の詳細は不明です。
  :print-function    オブジェクトを print する時に使われる関数を指定します。
                     format文などで ~A でオブジェクトをプリントする関数が変わ
                     ります。指定する関数は3つの引数をとり、順に オブジェクト、
                     ストリーム、(詳細不明)をとります。第3引数は、pretty print
                     に関する値が来ます。
                     :print-function が指定されない場合、 #S 構文でプリントさ
                     れます。
  :type              (詳細不明)
  :named             (詳細不明)
  :initial-offset    (詳細不明)

引数:
  NAME-AND-OPTIONS   オプションを指定しないときは構造体名、オプションを指定する
                     ときは、
                       (構造体名 (オプション名1 値1) (オプション名2 値2) ... )
                     の様に指定します。
  REST               構造体のスロットを指定します。スロット名のみを書くか、
                       (スロット名 デフォルト値 :type タイプ名 :read-only フラグ) 
                     の様に書いてひとつのスロットを定義します。 
                     :type と :read-only は、逆順にしても片方のみでも構いません。
                     リスト形式で書いた場合、後ろから順に省略できます。
                     タイプ名は、この構造体のオブジェクトであるかどうかを調べる
                     述語の生成に使うことができますが、xyzzy では使われていない
                     ようです。

特にオプション指定しないと make-xxxx, copy-xxxx, xxxx-p, xxxx-変数名 という関数
が作られるようです。 

  make-xxxx     デフォルトのコンストラクタ
  copy-xxxx     デフォルトのコピー関数
  xxxx-p        指定された構造体であるか否かを調べる関数
  xxxx-変数名   変数へのアクセス関数

定義:
  ;;; struct.lの定義
  (defmacro defstruct (name-and-options &rest rest)
    (eval-when (:compile-toplevel :load-toplevel :execute)
      (defstruct-helper name-and-options rest)))

使用例:
  ;;; FTPサーバを表す構造体の場合
  ;;; 初期値を予め指定することも可能
  (defstruct ftpsvr 
     anonymous hostname (port 80))
  => #<structure-definition: ftpsvr>
  (setq f1 (make-ftpsvr))
  => #S(ftpsvr anonymous nil hostname nil port 80)
  (setq f2 (make-ftpsvr  :anonymous t :hostname "ftp.world.com"))
  => #S(ftpsvr anonymous t hostname "ftp.world.com" port 80)
  (setq f3 #S(ftpsvr anonymous nil hostname "localhost"))
  => #S(ftpsvr anonymous nil hostname "localhost" port 80)

  ;;; 人を表す構造体の場合
  (defstruct person
     (name nil :type string)
     age
     (bloodtype "A"))
  => #<structure-definition: person>
  (setq p1 (make-person :name "Mike" :age 19))
  => #S(person name "Mike" age 19 bloodtype "A")
  (person-name p1)
  => "Mike"
  (setq p2 (copy-person p1))
  => #S(person name "Mike" age 19 bloodtype "A")
  (setf (person-bloodtype p1) "O")
  => "O"
  (person-bloodtype p1)
  => "O"
  (person-bloodtype p2)
  => "A"

  ;;; 患者を表す構造体の場合
  (defstruct (patient
             (:conc-name p-)
             (:print-function
              (lambda (o s p)
                (format s "<patient ~A ~D ~A>" (p-name o) (p-age o) (p-sicks o))))
              (:include person))
     (sicks nil :type (or nil list))
     id)
  => #<structure-definition: patient>
  (setq p3 (make-patient :name "Lucy" :age 18 :sicks '("かぜ")))
  => #S(patient name "Lucy" age 18 bloodtype "A" sicks ("かぜ") id nil)
  (format nil "~A" p3)
  => "<patient Lucy 18 (かぜ)>"

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

define-history-variable

type: Macro
arguments: define-history-variable NAME &optional (INITIAL-VALUE nil sv) DOC
package: editor
file: history.l
ヒストリ変数を定義します。

  NAME          : ヒストリ変数名を指定します。
  INITIAL-VALUE : 初期値を設定します。
  DOC           : 変数の説明を指定します。

ヒストリ変数とは、次回のxyzzyの立ち上げまで値を保持してくれる(lispを書く
人には)便利な変数です。ヒストリ変数がないと各マクロごとに独自の保存方法
をとらないといけませんが、ヒストリ変数のおかげで宣言するだけで変数の状態
を保存することが可能な優れものです。

ただし、一旦作成したヒストリ変数はいつまでも残ってしまうので、
不要になったらed::*history-variable-list*を確認した上で、
unregister-history-variableで削除して下さい。

使用例:
  ;;; grepd.lより
  (define-history-variable *grep-directory-history* nil)
  (define-history-variable *grep-file-history* nil)

SeeAlso: register-history-variable
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

defconstant

type: Macro
arguments: defconstant NAME VALUE &optional DOC
package: lisp
file: evalmacs.l
定数を宣言します。

使用例:
  ;;; encoding.lの中より
  (defconstant *eol-crlf* 1)
  => *eol-crlf*

SeeAlso: constantp
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

declare

type: Misc
package: lisp
Common Lispの機能で、「変数を動的に bind しろ」と宣言する事です。
Emacs Lispではそもそも動的にしか bind できないので存在しません。

  (declare (special 変数名))

違いを図示します。

  ;;; 大域変数 x          ┏大域変数━━━━━━┓    Common Lisp/xyzzy lisp:
  (setq x 0)              ┃x │0             ←╂─┐大域変数のxを参照する。
                          ┠─┴────────┨  │(+ 0 12)となる
  ;;; 関数 bar            ┃                    ┃  │
  (defun bar (x)          ┃┏(bar 34)━━━━┓┃  │    Emacs Lisp:
    (foo 12))             ┃┃x │34        ←╂╂─│─┐呼び出しスタックの
                          ┃┠─┴──────┨┃  │  │深いところのxを参照する。
  ;;; 関数 foo            ┃┃                ┃┃  │  │(+ 34 12)となる。
  (defun foo (y)          ┃┃┏(foo 12)━━┓┃┃  │  │
     (+ x y))    ... ※   ┃┃┃y │12      ┃┃┃  │  │
                          ┃┃┠─┴────┨┃┃  │  │
                          ┃┃┃(+ x y)   ─╂╂╂─┴─┘

とあったときに(bar 34)と呼び出すと、古いLispでは(Emacs Lispを含む)
※の時点で x = 34, y = 12と見えます。ところが、Common Lispやxyzzy lispでは
※の時点で x = 0,  y = 12と見えます。

昔Lispはインタープリタだったので、動的バインディングでもよかったんだけど、
コンパイラを作る時に、効率上なにかと問題があってCommon Lisp
では、静的バインディングに変更になりました。

でも、そうすると、古いコードを移植するのが大変になるので、

                          ┏大域変数━━━━━━┓    
                          ┃x │0               ┃
                          ┠─┴────────┨
  ;;; 関数 bar            ┃                    ┃    
  (defun bar (x)          ┃┏(bar 34)━━━━┓┃    Common Lisp/xyzzy lisp:
    (declare (special x)) ┃┃x │34        ←╂╂─┐大域変数ではなく
    (foo 12))             ┃┠─┴──────┨┃  │スタック上のxを参照する。
                          ┃┃                ┃┃  │(+ 34 12)となる。
                          ┃┃┏(foo 12)━━┓┃┃  │
                          ┃┃┃y │12      ┃┃┃  │
                          ┃┃┠─┴────┨┃┃  │
                          ┃┃┃(+ x y)   ─╂╂╂─┘

と書いてやると古いLisp(Emacs Lisp)のように動くという訳。

SeeAlso: special
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

constantp

type: Function
arguments: constantp OBJECT
package: lisp
file: builtin.l
オブジェクトがconstantかどうかを返します。

  t     オブジェクトはconstant
  nil   オブジェクトはconstantでない

使用例:
  ;;; defvar/defconstantの違い
  (defvar foo 2)
  => foo
  (defconstant bar 3)
  => bar
  (constantp 'foo)
  => nil
  (constantp 'bar)
  => t

SeeAlso: defconstant
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

char-code-limit

type: Variable
package: lisp
文字コードの限界値を定めている定数(65536)です。
*character-name-hash-table* を設定する
(make-character-name-hash-table) 関数の定義中でのみ使用されています。
xyzzy ソース内で定義されています。

SeeAlso: *character-name-hash-table*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

call-arguments-limit

type: Variable
package: lisp
関数に与えることのできる引数の個数の限界値

参照例: 
  call-arguments-limit
  => 536870911

SeeAlso: lambda-parameters-limit
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

buffer-read-only

type: BufferLocal
package: editor
バッファが読み取り専用かどうかを管理します。

  t     バッファは読み取り専用
  nil   バッファは読み書き可能

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

auto-save

type: BufferLocal
package: editor
自動保存を行うかを制御するためのフラグです。
個々のバッファ毎や特定のモードだけしたくないのであれば、使用例の様にロー
カル変数にします。

  t     自動保存する
  nil   自動保存しない

使用例:
  ;;; 現在のバッファは自動保存しないようにする。
  (make-local-variable 'auto-save)
  => t  
  (setq auto-save nil)
  => nil

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

auto-fill-hook

type: Variable
package: editor
入力の結果、fill-columnを越えたらdo-auto-fillから実行されます。

SeeAlso: *auto-fill-hook
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

add-history

type: Function
arguments: add-history ITEM VAR
package: editor
file: minibuf.l
VAR に ITEM を LRU順で追加します。 *minibuffer-maximum-history-count* 
を超えるときは、最も使用されていないヒストリを削除します。

また、 *minibuffer-enable-add-to-menu* が non-nil のときに、
(get VAR 'add-lru-menu-function) に関数が設定されていれば、
その関数を実行します。例えば、 *minibuffer-file-name-history* には、 
add-file-history-to-menu が設定されており、開いたファイルをメニューの
「最近使ったファイル(F)」に登録しています。

使用例:
  (add-history file '*minibuffer-file-name-history*)
  (add-history cmd '*minibuffer-execute-history*)

SeeAlso: *minibuffer-maximum-history-count*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

:test-not

type: Keyword
package: keyword
assoc や member、find などの関数で検索をする際に、
このキーワードに設定した関数の逆(not)を用いて真偽の判定をします。
  
なお :test と同時に指定することはできません。

使用例:
  ;; "abc" を含む文字列を選ぶ = "abc" を含まない文字列を除去する
  (remove "abc" '("abcd" "test" "xabcx" "abc" "xyz") :test-not #'string-match)
  => ("abcd" "xabcx" "abc")

SeeAlso: :test
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

:test

type: Keyword
package: keyword
assoc や member、find などの関数で検索をする際に、
このキーワードに設定した関数を用いて真偽の判定をします。

なお :test-not と同時に指定することはできません。

使用例:
  (assoc "b" '(("a" . 1) ("B" . 2) ("b" . 3) ("c" . 4)))
  => nil
  (assoc "b" '(("a" . 1) ("B" . 2) ("b" . 3) ("c" . 4)) :test #'string=)
  => ("b" . 3)
  (assoc "b" '(("a" . 1) ("B" . 2) ("b" . 3) ("c" . 4)) :test #'string-equal)
  => ("B" . 2)

SeeAlso: :test-not
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

:tail

type: Keyword
package: keyword
検索した場合にカーソルを文字列の先頭か末尾のどちらに位置づけるかを指定します。

  t     カーソルを末尾に位置づけます。
  nil   カーソルを先頭に位置づけます。

SeeAlso: scan-buffer
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

:right-bound

type: Keyword
package: keyword


SeeAlso: scan-buffer
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

:reverse

type: Keyword
package: keyword
検索する場合に正方向か逆方向かを指定します。

  t     逆方向に検索します。
  nil   正方向に検索します。

SeeAlso: scan-buffer
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

:regexp

type: Keyword
package: keyword
検索文字列が正規表現か否かを指定します。

  t     検索文字列は正規表現
  nil   検索文字列はただの文字列

SeeAlso: scan-buffer
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

:no-dup

type: Keyword
package: keyword
検索する場合に同じ位置から行うかどうかを指定します。

  t     ひとつ次から検索を行う。
  nil   同じ位置から検索を行う。

SeeAlso: scan-buffer
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

:key

type: Keyword
package: keyword
assoc や member、find などの関数で検索をする際に
各要素に適用する関数を指定します。
言い換えると、:test や :test-not で指定された関数に渡す値を
各要素から“取り出す”方法をこの関数で指定します。

使用例:
  ;; car が 'a である要素を除去する
  (remove 'a '((a . b) (b . x) (c d e) (a f h i) (x y)) :key #'car)
  => ((b . x) (c d e) (x y))
  ;; :test と組み合わせることも可能
  (remove "a" '(("a" . "b") ("b" . "c") ("d" . "a") ("a" . "e") ("b". "b"))
          :test #'string= :key #'car)
  => (("b" . "c") ("d" . "a") ("b" . "b"))

SeeAlso: :test
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

:case-fold

type: Keyword
package: keyword
検索する場合に大文字と小文字を区別するかどうかを指定します。

  t     大文字と小文字を区別しません。
  nil   大文字と小文字を区別します。

SeeAlso: scan-buffer
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*this-command*

type: Variable
package: editor
現在実行中の関数名のシンボルを格納しています。*last-command*に設定されます。
*pre-command-hook* / *post-command-hook*で特別な処理をかますのに使ったり、
実行中のコマンドを偽ったりできます。

SeeAlso: *last-command*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*show-match-hook*

type: Variable
package: editor
file: search.l
検索で一致したものの表示に使用しています。設定されていなければ、
show-matchが実行されます。
※run-hook-with-args-while-successで実行されるので注意すること。

SeeAlso: search-dialog
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*save-resume-info*

type: Variable
package: editor
file: history.l
non-nil ならば終了時の状態を保存します。
[共通設定] - [さまざま] - [終了時の状態を保存する(U)] で値を指定すること
ができます。

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*save-history-hook*

type: Variable
package: editor
file: history.l
*kill-xyzzy-hook*実行時に呼び出されます。
コマンドバー、セッション等のヒストリ変数の保存に使用されています。

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*save-history*

type: Variable
package: editor
file: history.l
保存するヒストリの個数です。
[共通設定] - [いろいろ] - [保存するヒストリの個数(S)] で値を指定すること
ができます。

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*save-buffer-no-filenames-hook*

type: Variable
package: editor
get-buffer-file-name が nil とかだと実行されます。
使用例:
  (add-hook '*save-buffer-no-filenames-hook*
          #'(lambda ()
              (if (yes-or-no-p "保存しますか")
                  ;;この時点でset-buffer-file-nameをしても遅い。
                  ;;emacs-write-fileなりを呼んでからnon-nilを渡すべき
                  (emacs-write-file (read-file-name "filename:"))
                ;;次のhookに処理を渡す場合はnilを渡す
                nil)))

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*query-kill-xyzzy-hook*

type: Variable
package: editor
xyzzy終了時に実行されます。このフック変数の実行がnilだと終了しません。
[xyzzy:03872]を参照

SeeAlso: *kill-xyzzy-hook*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*query-kill-buffer-hook*

type: Variable
package: editor
file: buffer.l
kill-buffer で実行されます。バッファの破棄を確認するために使用します。
※run-hook-with-args-while-successで実行されるので注意すること。

SeeAlso: kill-buffer
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*print-pretty*

type: Variable
package: lisp
式の表示を見やすくします。

標準はtです。

(flet ((f (x) (princ x) (terpri)))
  (let ((*print-pretty* t))
    (f '('a #'b))  ;;tの時の表示
    (setq *print-pretty* nil)
    (f '('a #'b))));;nilの時の表示
=> ('a #'b)
   ((quote a) (function b))

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*print-length*

type: Variable
package: lisp
長いリストの表示を途中で打ち切ります。

(setq *print-length* nil) => nil
(princ '(a b c d e f g h i j))
=>(a b c d e f g h i j)

(setq *print-length* 5)   => 5
(princ '(a b c d e f g h i j))
=>(a b c d e ...)

SeeAlso: *print-circle*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*print-completion-list-hook*

type: Variable
package: editor
file: complete.l
do-completion実行時に、補完リストを表示するために使用されています。
ポップアップ表示の前に処理されます。 
※funcallで実行されるので注意すること
  
使用例:
  (setq *print-completion-list-hook*
        #'(lambda (list prefix &optional string)
            (popup-string
             (format nil
                     "Possible completions are ~D items:\n~{\n~A~}"
                     (length list) list) (point))))

SeeAlso: *popup-completion-list-default*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*print-circle*

type: Variable
package: lisp
循環リストの表示を省略形にします

標準はnilです。read-eval-printのループでの
表示は常にtのようです。

(setq *print-circle* nil) => nil
(setq x (list 'a))        => (a)
(setf (cdr x) x)          => #1=(a . #1#)
(princ x)
=> (a a a ...
;;無限に続くのでC-gで終了
(setq *print-circle* t)   => t
(princ x)
#1=(a . #1#)
=> #1=(a . #1#)

SeeAlso: *print-length*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*prefix-value*

type: Variable
package: editor
コマンドが数引き数付きで呼ばれた時に数値が入ります。

SeeAlso: *prefix-args*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*prefix-args*

type: Variable
package: editor
コマンドが数引き数付きで呼ばれた場合に設定される変数です。

  (defun test1 ()
    (interactive)
    (message "~s,~s " *prefix-args* *prefix-value*))

例えば、C-u 10 M-x test1と呼び出されると、
*prefix-args* が non nil になり、 *prefix-value* に値が入ります。

SeeAlso: *prefix-value*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*pre-startup-hook*

type: Variable
package: editor
file: estartup.l
初期設定ファイルsiteinit.l実行後に実行されます。

SeeAlso: 起動時処理フロー
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*pre-command-hook*

type: Variable
package: editor
コマンドループにおいてコマンドの実行前に実行されます。

SeeAlso: *post-command-hook*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*pre-abbrev-expand-hook*

type: Variable
package: editor
file: abbrev.l
expand-abbrevの最初に実行されます。

SeeAlso: expand-abbrev
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*post-startup-hook*

type: Variable
package: editor
file: estartup.l
初期設定ファイル.xyzzy実行後に以下の順番でフック変数が評価されま
す。
  1. *load-history-hook*
  2. *init-app-menu-hook*
  3. *command-line-mailto-hook*(-mailtoがある場合)
  4. *process-command-line-hook*(不明なオプションがある場合)
  5. *post-startup-hook*

SeeAlso: 起動時処理フロー
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*post-command-hook*

type: Variable
package: editor
コマンドループにおいてコマンドの実行後に実行されます。

SeeAlso: *pre-command-hook*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*minibuffer-symbol-name-history*

type: Variable
package: editor
file: minibuf.l
ミニバッファのシンボル名の履歴です。

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*minibuffer-search-string-history*

type: Variable
package: editor
file: minibuf.l
ミニバッファの検索文字の履歴です。

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*minibuffer-lisp-sexp-history*

type: Variable
package: editor
file: minibuf.l
ミニバッファのS式の履歴です。

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*minibuffer-file-name-history*

type: Variable
package: editor
file: minibuf.l
ミニバッファのファイル名の履歴です。

SeeAlso: add-file-history-to-menu
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*minibuffer-execute-history*

type: Variable
package: editor
file: minibuf.l
(詳細不明)

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*minibuffer-directory-name-history*

type: Variable
package: editor
file: minibuf.l
ミニバッファのディレクトリ名の履歴です。

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*minibuffer-buffer-name-history*

type: Variable
package: editor
file: minibuf.l
ミニバッファのバッファ名の履歴です。

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*menu-display-length*

type: Variable
package: editor
file: app-menu.l
メニューの「最近使ったファイル」で表示されるファイルパスの長さを指定します。
デフォルトでは40です。

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*make-backup-filename-hook*

type: Variable
package: editor
file: backup.l
(多分触らないほうがいいと思われます)

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*load-path*

type: Variable
package: lisp
ライブラリをロードするパスがリストで設定されています。
直接リストを修正するよりも、siteinit.lで*default-load-path*に追
加する方が好ましいようです。

SeeAlso: si:*load-library
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*load-history-hook*

type: Variable
package: editor
file: history.l
.xyzzy処理後に実行されます。コマンドバー、セッション等のヒストリ変
数の読み込みに使用されています。

SeeAlso: 起動時処理フロー
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*lisp-popup-completion-list*

type: Variable
package: editor
file: lispmode.l
lisp-complete-symbol 時の補完候補をポップアップ表示するかを設定します。 

動作:
  *lisp-popup-completion-list*
    :always   ポップアップ表示
    :never    *Completion*バッファで表示

    *popup-completion-list-default*
      :always ポップアップ表示
      :never  *Completion*バッファで表示

    non-nil   ポップアップ表示
    nil       *Completion*バッファで表示

SeeAlso: lisp-complete-symbol
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*last-command*

type: Variable
package: editor
最後に実行したコマンドが入っています。直前の *this-command* の値が設定されます。

SeeAlso: *this-command*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*kill-xyzzy-hook*

type: Variable
package: editor
xyzzyの終了時に実行されます。

SeeAlso: kill-xyzzy
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*kill-buffer-kills-scratch*

type: Variable
package: editor
file: lispmode.l
*kill-buffer-kills-scratch*がnon-nilの場合には、kill-bufferで
*scratch*が削除可能です。デフォルトはnilになっています。

SeeAlso: kill-buffer
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*keyword-load-path*

type: Variable
package: editor
file: kwd.l
キーワードファイルのパスをリストで設定します。
指定されたキーワードファイルがこのリストから見つからない場合には、
etc-pathで取得されるパスを検索します。

使用例:
  (setq *keyword-load-path* '("C:/Program Files/xyzzy/keyword"))

SeeAlso: *etc-path*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*history-file-name*

type: Variable
package: editor
file: history.l
ヒストリを保存するファイル名です。
nil の場合は関数 history-file-name において
適当に決定されます。

例:
  *history-file-name*
  =>"X:/xyzzy/usr/username/wxp/.xyzzy.history"

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*gresreg-directory-name-hook*

type: Variable
package: editor
file: gresregd.l
gresreg-dialog で gresreg 対象のディレクトリを個々に設定したい場合
に実行されます。
※funcallで実行されるので注意すること

SeeAlso: gresreg-dialog
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*grepd-hook*

type: Variable
package: editor
file: grepd.l
grep-dialog起動時に実行されます。

SeeAlso: *grep-hook*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*grep-hook*

type: Variable
package: editor
file: grep.l
grep起動時に実行されます。

SeeAlso: *grepd-hook*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*grep-directory-name-hook*

type: Variable
package: editor
file: grepd.l
grep-dialogでgrep対象のディレクトリを個々に設定したい場合に実行
されます。
※funcallされるので注意すること

SeeAlso: *grep-hook*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*find-file-file-not-found-hook*

type: Variable
package: editor
file: files.l
find-file で指定されたファイルが存在しないときに実行されます。
※run-hook-with-args-until-successで実行されるので注意すること

SeeAlso: find-file
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*etc-path*

type: Variable
package: editor
file: misc.l
キーワードファイル等を格納するパスが設定されています。
標準では(merge-pathnames "etc" (si:system-root))が設定されています。

参照例:
  *etc-path*
  => "C:/APPLICATIONS/XYZZY/etc"

SeeAlso: etc-path
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*drag-and-drop-hook*

type: Variable
package: editor
file: mouse.l
D&D時に実行されます。デフォルトでは、D&D先がミニバッファ
ならミニバッファへの入力として扱い、それ以外ならfind-fileする
ようになっています。

※run-hooksではなくfuncallされます。引数は2つで、ドロップされたウィンド
  ウとドロップしたファイルのリストです。

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*delete-buffer-hook*

type: Variable
package: editor
delete-bufferで実行されます。

SeeAlso: delete-buffer
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*default-load-path*

type: Variable
package: editor
file: misc.l
siteinit.lから*load-path*を修正するために用いられます。
siteinit.lの直後に*default-load-path*の内容が、*load-path*にマー
ジされ、*pre-startup-hook*から有効になります。
追加するパスはリストで設定します。

使用例:
  (setq *default-load-path* '("C:/APPLICATIONS/XYZZY/lib"))

SeeAlso: *load-path*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*deactivate-hook*

type: Variable
package: editor
バッファがdeactivateされたときに任意の処理を行うために使用されま
す。デフォルトではクリップボードの同期を行っています。

SeeAlso: *activate-hook*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*create-buffer-hook*

type: Variable
package: editor
多分create-new-bufferで実行されます。

SeeAlso: *default-buffer-mode*
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*command-line-mailto-hook*

type: Variable
package: editor
file: estartup.l
コマンドラインで指定された -mailto オプションの引数を元に実行されます。 
※run-hooksではなくfuncallされるので注意すること

SeeAlso: 起動時処理フロー
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*change-buffer-colors-hook*

type: Variable
package: editor
途中

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*brackets-is-wildcard-character*

type: Variable
package: lisp
non-nil ならばファイルパスとして渡した文字列中の [...] をワイルドーカー
ドとして扱います。
[共通設定] - [さまざま] - [[...]はワイルドカード(I)] で値を指定すること
ができます。
xyzzy ソース内で定義されており、デフォルト値は t です。
具体的には、wild-pathname-p, pathname-match-p 関数での判定の際に
*brackets-is-wildcard-character* の値が考慮されます。

SeeAlso: wild-pathname-p
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*before-save-buffer-hook*

type: Variable
package: editor
多分save-bufferの最初に実行されます。
※run-hook-with-args-until-successで実行されるので注意すること

[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*before-find-file-hook*

type: Variable
package: editor
file: files.l
find-fileの最初で実行されます。
※run-hook-with-args-until-successで実行されるので注意すること

SeeAlso: find-file
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*before-delete-buffer-hook*

type: Variable
package: editor
delete-bufferを継続するかどうかを制御します。登録された関数が一
つでもnilを返すとdelete-bufferを中止します。

参考:
  ;;; 呼び出し方
  (run-hook-with-args-until-success
       '*before-delete-buffer-hook* (selected-buffer))

使用例:
  (add-hook '*before-delete-buffer-hook* 'func)
  =>(func)
  (defun func (x) (yes-or-no-p "delete-buffer ~A ?" (buffer-name x)))
  =>func

SeeAlso: delete-buffer
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*auto-fill-hook

type: Variable
package: editor
file: cmds.l
auto-fill-mode の時に、self-insert-command から *last-command-char*
を引数として実行されます。普通は do-auto-fill が設定されています。
多分修正しない方が良いと思います。
※ run-hooks ではなく、 funcall されるので注意すること

SeeAlso: auto-fill-mode
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*after-save-buffer-hook*

type: Variable
package: editor
多分 save-buffer の最後に実行されます。

SeeAlso: save-buffer
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]

*activate-hook*

type: Variable
package: editor
バッファがactivateされたときに任意の処理を行うために使用されます。
デフォルトではファイルの修正日付を確認しています。

SeeAlso: verify-buffers-file-modtime
[ Intro | 目次 | 索引 | 目的別 | 変数と定数 ]