File:  [Local Repository] / gnujdoc / emacs-20.6 / building-ja.texi
Revision 1.1: download - view: text, annotated - select for diffs
Wed Apr 26 06:42:33 2000 UTC (20 years, 6 months ago) by hayashi
Branches: MAIN
CVS tags: HEAD
New files

    1: @c =============================================================
    2: @c = 元 翻 訳: 粕川正充@お茶の水女子大学
    3: @c = 加筆修正: 大木敦雄@大塚.筑波大学 = 1998/11/25
    4: @c =           ref 修正                = 2000/02/13
    5: @c =============================================================
    6: @c This is part of the Emacs manual.
    7: @c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
    8: @c See file emacs.texi for copying conditions.
    9: @node Building, Abbrevs, Programs, Top
   10: @c @chapter Compiling and Testing Programs
   11: @chapter プログラムのコンパイルとテスト
   12: @c @cindex building programs
   13: @cindex プログラムのコンパイル
   14: @c @cindex program building
   15: @c @cindex running Lisp functions
   16: @cindex Lisp関数の実行
   17: 
   18: @c   The previous chapter discusses the Emacs commands that are useful for
   19: @c making changes in programs.  This chapter deals with commands that assist
   20: @c in the larger process of developing and maintaining programs.
   21: 前章ではプログラムの変更に便利なEmacsコマンドを説明しました。
   22: 本章ではプログラムの大規模な開発や保守を助けるコマンドを説明します。
   23: 
   24: @menu
   25: * Compilation::         Compiling programs in languages other
   26:                           than Lisp (C, Pascal, etc.).
   27: * Grep Searching::      Running grep as if it were a compiler.
   28: * Compilation Mode::    The mode for visiting compiler errors.
   29: * Compilation Shell::   Customizing your shell properly
   30:                           for use in the compilation buffer.
   31: * Debuggers::	        Running symbolic debuggers for non-Lisp programs. 
   32: * Executing Lisp::      Various modes for editing Lisp programs, 
   33:                           with different facilities for running
   34:                           the Lisp programs. 
   35: * Libraries: Lisp Libraries.      Creating Lisp programs to run in Emacs.
   36: * Interaction: Lisp Interaction.  Executing Lisp in an Emacs buffer.
   37: * Eval: Lisp Eval.      Executing a single Lisp expression in Emacs.
   38: * External Lisp::         Communicating through Emacs with a separate Lisp. 
   39: @end menu
   40: 
   41: @node Compilation, Grep Searching, , Building
   42: @c @section Running Compilations under Emacs
   43: @section Emacs下でのコンパイラの実行
   44: @c @cindex inferior process
   45: @cindex 下位プロセス
   46: @cindex make
   47: @c @cindex compilation errors
   48: @cindex コンパイルエラー
   49: @c @cindex error log
   50: @cindex エラーログ
   51: 
   52: @c   Emacs can run compilers for noninteractive languages such as C and
   53: @c Fortran as inferior processes, feeding the error log into an Emacs buffer.
   54: @c It can also parse the error messages and show you the source lines where
   55: @c compilation errors occurred.
   56: EmacsはCやFortranのような非対話的な言語のコンパイラを
   57: 下位プロセスとして実行でき、
   58: そのエラーログをEmacsバッファに取り込めます。
   59: また、エラーメッセージを解析して、
   60: コンパイルエラーを起こしたソース行を提示することもできます。
   61: 
   62: @table @kbd
   63: @item M-x compile
   64: @c Run a compiler asynchronously under Emacs, with error messages to
   65: @c @samp{*compilation*} buffer.
   66: Emacs下でコンパイラを非同期に実行し、
   67: エラーメッセージを@samp{*compilation*}バッファに取り込む。
   68: @item M-x grep
   69: @c Run @code{grep} asynchronously under Emacs, with matching lines
   70: @c listed in the buffer named @samp{*grep*}.
   71: Emacs下で@code{grep}を非同期に実行し、
   72: 一致した行を@samp{*grep*}バッファに取り込む。
   73: @item M-x grep-find
   74: @c Run @code{grep} via @code{find}, with user-specified arguments, and
   75: @c collect output in the buffer named @samp{*grep*}.
   76: 指定した引数で@code{find}と@code{grep}を実行し、
   77: 出力を@samp{*grep*}バッファに取り込む。
   78: @item M-x kill-compilation
   79: @itemx M-x kill-grep
   80: @c Kill the running compilation or @code{grep} subprocess.
   81: 実行中のコンパイラや@code{grep}のサブプロセスを停止させる。
   82: @end table
   83: 
   84: @findex compile
   85: @c   To run @code{make} or another compilation command, do @kbd{M-x
   86: @c compile}.  This command reads a shell command line using the minibuffer,
   87: @c and then executes the command in an inferior shell, putting output in
   88: @c the buffer named @samp{*compilation*}.  The current buffer's default
   89: @c directory is used as the working directory for the execution of the
   90: @c command; normally, therefore, the compilation happens in this
   91: @c directory.
   92: @code{make}や他のコンパイルコマンドを実行するには、
   93: @kbd{M-x compile}と打ちます。
   94: このコマンドは、ミニバッファでシェルコマンドを読み取り、
   95: そのコマンドを下位シェルで実行し、
   96: 出力結果を@samp{*compilation*}という名のバッファに取り込みます。
   97: カレントバッファのデフォルトディレクトリを
   98: シェルコマンド実行時の作業ディレクトリとして用います。
   99: そのため、通常はこのディレクトリにあるものをコンパイルします。
  100: 
  101: @vindex compile-command
  102: @c   When the shell command line is read, the minibuffer appears containing
  103: @c a default command line, which is the command you used the last time you
  104: @c did @kbd{M-x compile}.  If you type just @key{RET}, the same command
  105: @c line is used again.  For the first @kbd{M-x compile}, the default is
  106: @c @samp{make -k}.  The default compilation command comes from the variable
  107: @c @code{compile-command}; if the appropriate compilation command for a
  108: @c file is something other than @samp{make -k}, it can be useful for the
  109: @c file to specify a local value for @code{compile-command} (@pxref{File
  110: @c Variables}).
  111: シェルコマンド行を読み取るとき、
  112: ミニバッファにはデフォルトのシェルコマンド行が表示されますが、
  113: これは前回@kbd{M-x compile}を使ったときのコマンドです。
  114: 単に@key{RET}だけを打鍵すると、同じシェルコマンド行を再使用します。
  115: 最初の@kbd{M-x compile}では、デフォルトは@samp{make -k}です。
  116: デフォルトのコンパイルコマンドは変数@code{compile-command}から取ります。
  117: 適切なコンパイルコマンドが他にある場合には、
  118: ファイルでこの変数のローカルな値を指定すると便利でしょう
  119: (@pxref{File Variables})。
  120: 
  121: @c   Starting a compilation displays the buffer @samp{*compilation*} in
  122: @c another window but does not select it.  The buffer's mode line tells you
  123: @c whether compilation is finished, with the word @samp{run} or @samp{exit}
  124: @c inside the parentheses.  You do not have to keep this buffer visible;
  125: @c compilation continues in any case.  While a compilation is going on, the
  126: @c string @samp{Compiling} appears in the mode lines of all windows.  When
  127: @c this string disappears, the compilation is finished.
  128: コンパイルが始まると、バッファ@samp{*compilation*}は別のウィンドウに
  129: 表示されますが、選択されるわけではありません。
  130: このバッファのモード行では、
  131: 括弧の中に単語@samp{run}か@samp{exit}を表示して
  132: コンパイルが終了したかどうか示します。
  133: このバッファを見えるようにしておく必要はありません。
  134: いずれにしても、コンパイルは継続されます。
  135: コンパイル中は、すべてのウィンドウのモード行に
  136: 文字列@samp{Compiling}が表示されます。
  137: この文字列が消えれば、コンパイルは終了しています。
  138: 
  139: @c   If you want to watch the compilation transcript as it appears, switch
  140: @c to the @samp{*compilation*} buffer and move point to the end of the
  141: @c buffer.  When point is at the end, new compilation output is inserted
  142: @c above point, which remains at the end.  If point is not at the end of
  143: @c the buffer, it remains fixed while more compilation output is added at
  144: @c the end of the buffer.
  145: コンパイルの進行状況を見たい場合には、
  146: @samp{*compilation*}バッファに切り替えてポイントをバッファの末尾に移動します。
  147: ポイントがバッファの末尾にあると、
  148: 新らたなコンパイル出力はポイントのまえに挿入されポイントは末尾に留まります。
  149: ポイントがバッファの末尾にないと、
  150: コンパイル出力はバッファの末尾に追加されますが
  151: ポイントは途中の場所に留まったままです。
  152: 
  153: @vindex compilation-scroll-output
  154: @c   If you set the variable @code{compilation-scroll-output} to a
  155: @c non-@code{nil} value, then the compilation buffer always scrolls to
  156: @c follow output as it comes in.
  157: 変数@code{compilation-scroll-output}に@code{nil}以外の値を設定すると、
  158: 出力が到着するたびに出力に追従するように
  159: コンパイルバッファをつねにスクロールします。
  160: 
  161: @findex kill-compilation
  162: @c   To kill the compilation process, do @kbd{M-x kill-compilation}.  When
  163: @c the compiler process terminates, the mode line of the
  164: @c @samp{*compilation*} buffer changes to say @samp{signal} instead of
  165: @c @samp{run}.  Starting a new compilation also kills any running
  166: @c compilation, as only one can exist at any time.  However, @kbd{M-x
  167: @c compile} asks for confirmation before actually killing a compilation
  168: @c that is running.
  169: コンパイルプロセスを止めるには、
  170: @kbd{M-x kill-compilation}を実行します。
  171: コンパイルプロセスが終了すると、@samp{*compilation*}バッファの
  172: モード行の表示が@samp{run}から@samp{signal}に変わります。
  173: 一度に実行可能なコンパイルは1つだけなので、
  174: 新しくコンパイルを始めると実行中のコンパイルは停止させられます。
  175: しかし、@kbd{M-x compile}は、
  176: 実行中のコンパイルを実際に停止させるかどうか聞いてきます。
  177: 
  178: @node Grep Searching, Compilation Mode, Compilation, Building
  179: @c @section Searching with Grep under Emacs
  180: @section Emacs下でのgrepによる探索
  181: 
  182: @findex grep
  183: @c   Just as you can run a compiler from Emacs and then visit the lines
  184: @c where there were compilation errors, you can also run @code{grep} and
  185: @c then visit the lines on which matches were found.  This works by
  186: @c treating the matches reported by @code{grep} as if they were ``errors.''
  187: Emacsからコンパイラを実行し、コンパイルエラーを起こした行を
  188: 訪れることができるように、@code{grep}を実行して
  189: 一致した行を訪れることができます。
  190: これは、@code{grep}が報告した一致を『エラー』として扱うことで行います。
  191: 
  192: @c   To do this, type @kbd{M-x grep}, then enter a command line that
  193: @c specifies how to run @code{grep}.  Use the same arguments you would give
  194: @c @code{grep} when running it normally: a @code{grep}-style regexp
  195: @c (usually in single-quotes to quote the shell's special characters)
  196: @c followed by file names, which may use wildcards.  The output from
  197: @c @code{grep} goes in the @samp{*grep*} buffer.  You can find the
  198: @c corresponding lines in the original files using @kbd{C-x `} and
  199: @c @key{RET}, as with compilation errors.
  200: それには、@kbd{M-x grep}と打鍵してから、
  201: @code{grep}をどのように実行するかを指定するコマンド行を入力します。
  202: 普通に@code{grep}を実行するときに指定する引数と同じものを使います。
  203: つまり、@code{grep}流の
  204: (普通、シェルの特殊文字をクォートするためにシングルクォートで囲んだ)
  205: 正規表現に続けて、ワイルドカードなどを用いたファイル名を指定します。
  206: @code{grep}の出力は@samp{*grep*}バッファに入ります。
  207: ファイル内の対応する行を探すには、コンパイルエラーの場合と同様に、
  208: @kbd{C-x `}と@key{RET}を使います。
  209: 
  210: @c   If you specify a prefix argument for @kbd{M-x grep}, it figures out
  211: @c the tag (@pxref{Tags}) around point, and puts that into the default
  212: @c @code{grep} command.
  213: @kbd{M-x grep}に前置引数を指定すると、
  214: ポイントの周りから(探すべき)タグを推測して
  215: デフォルトの@code{grep}コマンドにそれを含めます。
  216: 
  217: @findex grep-find
  218: @c   The command @kbd{M-x grep-find} is similar to @kbd{M-x grep}, but it
  219: @c supplies a different initial default for the command---one that runs
  220: @c both @code{find} and @code{grep}, so as to search every file in a
  221: @c directory tree.  See also the @code{find-grep-dired} command,
  222: @c in @ref{Dired and Find}.
  223: @kbd{M-x grep-find}は@kbd{M-x grep}コマンドと同様ですが、
  224: シェルコマンドに与える最初のデフォルトが違います。
  225: @code{find}と@code{grep}の両方を実行して、
  226: ディレクトリ木構造下の各ファイルを探索します。
  227: @ref{Dired and Find}の@code{find-grep-dired}コマンドも参照してください。
  228: 
  229: @node Compilation Mode, Compilation Shell, Grep Searching, Building
  230: @c @section Compilation Mode
  231: @section コンパイルモード
  232: 
  233: @findex compile-goto-error
  234: @c @cindex Compilation mode
  235: @cindex コンパイルモード
  236: @c @cindex mode, Compilation
  237: @cindex モード、Compilation
  238: @c   The @samp{*compilation*} buffer uses a special major mode, Compilation
  239: @c mode, whose main feature is to provide a convenient way to look at the
  240: @c source line where the error happened.
  241: @samp{*compilation*}バッファは、
  242: コンパイル(compilation)モードと呼ばれる特別なメジャーモードになります。
  243: このモードの主な機能は、エラーが起きたソース行を簡単に参照できることです。 
  244: 
  245: @table @kbd
  246: @item C-x `
  247: @c Visit the locus of the next compiler error message or @code{grep} match.
  248: つぎのコンパイルエラーや@code{grep}のつぎの一致に
  249: 対応する箇所を訪れる。
  250: @item @key{RET}
  251: @c Visit the locus of the error message that point is on.
  252: @c This command is used in the compilation buffer.
  253: ポイントが位置するエラーメッセージに対応する箇所を訪れる。
  254: このコマンドは、コンパイルバッファで使う。
  255: @item Mouse-2
  256: @c Visit the locus of the error message that you click on.
  257: マウスでクリックしたエラーメッセージに対応する箇所を訪れる。
  258: @end table
  259: 
  260: @kindex C-x `
  261: @findex next-error
  262: @c   You can visit the source for any particular error message by moving
  263: @c point in @samp{*compilation*} to that error message and typing @key{RET}
  264: @c (@code{compile-goto-error}).  Or click @kbd{Mouse-2} on the error message;
  265: @c you need not switch to the @samp{*compilation*} buffer first.
  266: @samp{*compilation*}でエラーメッセージにポイントを持っていって
  267: @key{RET}(@code{compile-goto-error})を打鍵すれば、
  268: そのエラーの原因となったソースを訪問できます。
  269: あるいは、エラーメッセージを@kbd{Mouse-2}でクリックしますが、
  270: このときは、あらかじめ@samp{*compilation*}バッファに
  271: 切り替えておく必要はありません。
  272: 
  273: @c   To parse the compiler error messages sequentially, type @kbd{C-x `}
  274: @c (@code{next-error}).  The character following the @kbd{C-x} is the
  275: @c backquote or ``grave accent,'' not the single-quote.  This command is
  276: @c available in all buffers, not just in @samp{*compilation*}; it displays
  277: @c the next error message at the top of one window and source location of
  278: @c the error in another window.
  279: コンパイラのエラーメッセージを順番に解析するには、
  280: @kbd{C-x `}(@code{next-error})と打鍵します。
  281: @kbd{C-x}に続く文字は、シングルクォートではなく
  282: バッククォート、すなわち、『アクサングレーブ』です。
  283: このコマンドは@samp{*compilation*}だけでなく、
  284: すべてのバッファで使用可能です。
  285: このコマンドは、一方のウィンドウの先頭にエラーメッセージを表示し、
  286: 別のウィンドウにエラーとなったソースコードを表示します。
  287: 
  288: @c   The first time @kbd{C-x `} is used after the start of a compilation,
  289: @c it moves to the first error's location.  Subsequent uses of @kbd{C-x `}
  290: @c advance down to subsequent errors.  If you visit a specific error
  291: @c message with @key{RET} or @kbd{Mouse-2}, subsequent @kbd{C-x `}
  292: @c commands advance from there.  When @kbd{C-x `} gets to the end of the
  293: @c buffer and finds no more error messages to visit, it fails and signals
  294: @c an Emacs error.
  295: コンパイル開始後に最初に@kbd{C-x `}を使うと、
  296: 最初のエラー箇所に移動します。
  297: 続けて@kbd{C-x `}を実行すると、次々にエラー箇所に移動していきます。
  298: @key{RET}や@kbd{Mouse-2}で特定のエラー箇所に移動したあとに
  299: @kbd{C-x `}コマンドを実行すると、その場所のつぎのエラー箇所に移動します。
  300: バッファの末尾に到達してもうエラーメッセージがないと、
  301: @kbd{C-x `}コマンドは失敗し、エラーを通知します。
  302: 
  303: @c   @kbd{C-u C-x `} starts scanning from the beginning of the compilation
  304: @c buffer.  This is one way to process the same set of errors again.
  305: @kbd{C-u C-x `}は、コンパイルバッファの先頭から解析を始めます。
  306: コンパイルをやり直さずに一連のエラーの解析をもう一度行う方法の1つです。
  307: 
  308: @c   Compilation mode also redefines the keys @key{SPC} and @key{DEL} to
  309: @c scroll by screenfuls, and @kbd{M-n} and @kbd{M-p} to move to the next or
  310: @c previous error message.  You can also use @kbd{M-@{} and @kbd{M-@}} to
  311: @c move up or down to an error message for a different source file.
  312: コンパイル(compilation)モードでは、
  313: @key{SPC}キーと@key{DEL}キーを1画面分のスクロールに、
  314: @kbd{M-n}と@kbd{M-p}を1つつぎ/まえのエラーメッセージへの移動に再定義します。
  315: また、別のソースファイルのエラーメッセージへの移動には、
  316: @kbd{M-@{}と@kbd{M-@}}コマンドを使えます。
  317: 
  318: @c   The features of Compilation mode are also available in a minor mode
  319: @c called Compilation Minor mode.  This lets you parse error messages in
  320: @c any buffer, not just a normal compilation output buffer.  Type @kbd{M-x
  321: @c compilation-minor-mode} to enable the minor mode.  This defines the keys
  322: @c @key{RET} and @kbd{Mouse-2}, as in the Compilation major mode.
  323: コンパイル(compilation)モードの機能は、
  324: コンパイルマイナ(compilation-minor)モードと呼ばれるマイナモードでも
  325: 使えます。
  326: これにより、普通のコンパイルバッファだけでなく任意のバッファ内の
  327: エラーメッセージを解析できます。
  328: このマイナモードをオンにするには、
  329:  @kbd{M-x compilation-minor-mode}と打鍵します。
  330: すると、メジャーモードのコンパイル(compilation)モードと同様に
  331: @key{RET}キーと@kbd{Mouse-2}を定義します。
  332: 
  333: @c   Compilation minor mode works in any buffer, as long as the contents
  334: @c are in a format that it understands.  In an Rlogin buffer (@pxref{Remote
  335: @c Host}), Compilation minor mode automatically accesses remote source
  336: @c files by FTP (@pxref{File Names}).
  337: バッファの内容が認識できる形式である限り、
  338: コンパイルマイナ(compilation-minor)モードは任意のバッファで動作します。
  339: rloginバッファ(@pxref{Remote Host})では、
  340: コンパイルマイナ(compilation-minor)モードは
  341: リモートのソースファイルをFTPで自動的に取ってきます(@pxref{File Names})。
  342: 
  343: @node Compilation Shell, Debuggers, Compilation Mode, Building
  344: @c @section Subshells for Compilation
  345: @section コンパイルのためのサブシェル
  346: 
  347: @c   Emacs uses a shell to run the compilation command, but specifies
  348: @c the option for a noninteractive shell.  This means, in particular, that
  349: @c the shell should start with no prompt.  If you find your usual shell
  350: @c prompt making an unsightly appearance in the @samp{*compilation*}
  351: @c buffer, it means you have made a mistake in your shell's init file by
  352: @c setting the prompt unconditionally.  (This init file's name may be
  353: @c @file{.bashrc}, @file{.profile}, @file{.cshrc}, @file{.shrc}, or various
  354: @c other things, depending on the shell you use.)  The shell init file
  355: @c should set the prompt only if there already is a prompt.  In csh, here
  356: @c is how to do it:
  357: Emacsはシェルを使ってコンパイルコマンドを実行しますが、
  358: 非対話的なシェルになるようなオプションを指定します。
  359: つまり、シェルはプロンプトを出さずに実行を開始するはずです。
  360: @samp{*compilation*}バッファに通常のシェルプロンプトがぶざまに現れる場合は、
  361: 個人のシェル初期化ファイルでプロンプトを無条件に設定していることを
  362: 意味します。
  363: (シェル初期化ファイルの名前は、@file{.bashrc}、@file{.profile}、
  364: @file{.cshrc}、@file{.shrc}などだが、
  365: 使っているシェルによってさまざまな場合がある。)
  366: シェル初期化ファイルでは、プロンプトがすでに設定されているときだけ
  367: プロンプトを再設定するべきです。
  368: たとえば、@samp{csh}では以下のようにします。
  369: 
  370: @example
  371: if ($?prompt) set prompt = @dots{}
  372: @end example
  373: 
  374: @noindent
  375: @c And here's how to do it in bash:
  376: bashでは以下のようにします。
  377: 
  378: @example
  379: if [ "$@{PS1+set@}" = set ]
  380: then PS1=@dots{}
  381: fi
  382: @end example
  383: 
  384: @c   There may well be other things that your shell's init file
  385: @c ought to do only for an interactive shell.  You can use the same
  386: @c method to conditionalize them.
  387: 読者のシェル初期化ファイルには、対話的なシェルに対してだけ
  388: 本来は設定するべきことがまだあるかもしれません。
  389: 同じ方法を用いて、それらを状況に応じて設定するようにできます。
  390: 
  391: @c   The MS-DOS ``operating system'' does not support asynchronous
  392: @c subprocesses; to work around this lack, @kbd{M-x compile} runs the
  393: @c compilation command synchronously on MS-DOS.  As a consequence, you must
  394: @c wait until the command finishes before you can do anything else in
  395: @c Emacs.  @xref{MS-DOS}.
  396: MS-DOS『オペレーティングシステム』では、
  397: 非同期のサブプロセスを使えません。
  398: 対応策として、MS-DOSでは@kbd{M-x compile}は
  399: コンパイルコマンドを同期的に実行します。
  400: その結果、Emacs上で他の作業を行うには、
  401: コンパイルコマンドの終了を待つ必要があります。
  402: @xref{MS-DOS}。
  403: 
  404: @node Debuggers, Executing Lisp, Compilation Shell, Building
  405: @c @section Running Debuggers Under Emacs
  406: @section Emacs下でのデバッガの実行
  407: @c @cindex debuggers
  408: @cindex デバッガ
  409: @c @cindex GUD library
  410: @cindex GUDライブラリ
  411: @cindex GDB
  412: @cindex DBX
  413: @cindex SDB
  414: @cindex XDB
  415: @cindex Perldb
  416: @cindex JDB
  417: @cindex PDB
  418: 
  419: @c @c Do you believe in GUD?
  420: @c The GUD (Grand Unified Debugger) library provides an interface to
  421: @c various symbolic debuggers from within Emacs.  We recommend the debugger
  422: @c GDB, which is free software, but you can also run DBX, SDB or XDB if you
  423: @c have them.  GUD can also serve as an interface to the Perl's debugging
  424: @c mode, the Python debugger PDB, and to JDB, the Java Debugger.
  425: GUD(Grand Unified Debugger、大統一デバッガ)ライブラリは、
  426: Emacsからさまざまなデバッガへのインターフェイスを提供します。
  427: フリーソフトウェアであるGDBをお勧めしますが、
  428: DBX、SDB、XDBを持っているならばそれらを使うこともできます。
  429: GUDは、Perlのデバッグモード、
  430: PythonのデバッガPDB、JavaデバッガJDBに対するインターフェイスにもなります。
  431: 
  432: @menu
  433: * Starting GUD::	How to start a debugger subprocess.
  434: * Debugger Operation::	Connection between the debugger and source buffers.
  435: * Commands of GUD::	Key bindings for common commands.
  436: * GUD Customization::	Defining your own commands for GUD.
  437: @end menu
  438: 
  439: @node Starting GUD, Debugger Operation, , Debuggers
  440: @c @subsection Starting GUD
  441: @subsection GUDの起動
  442: 
  443: @c   There are several commands for starting a debugger, each corresponding
  444: @c to a particular debugger program.
  445: デバッガを開始するコマンドはいくつかあり、
  446: それぞれ、特定のデバッガに対応しています。
  447: 
  448: @table @kbd
  449: @item M-x gdb @key{RET} @var{file} @key{RET}
  450: @findex gdb
  451: @c Run GDB as a subprocess of Emacs.  This command creates a buffer for
  452: @c input and output to GDB, and switches to it.  If a GDB buffer already
  453: @c exists, it just switches to that buffer.
  454: EmacsのサブプロセスとしてGDBを実行する。
  455: このコマンドは、GDBへの入出力用のバッファを新たに作り、
  456: そのバッファへ切り替える。
  457: GDBバッファが既存の場合は、そのバッファへ切り替えるだけ。
  458: 
  459: @item M-x dbx @key{RET} @var{file} @key{RET}
  460: @findex dbx
  461: @c Similar, but run DBX instead of GDB.
  462: 同様に、GDBのかわりにDBXを実行する。
  463: 
  464: @item M-x xdb @key{RET} @var{file} @key{RET}
  465: @findex xdb
  466: @vindex gud-xdb-directories
  467: @c Similar, but run XDB instead of GDB.  Use the variable
  468: @c @code{gud-xdb-directories} to specify directories to search for source
  469: @c files.
  470: 同様に、GDBのかわりにXDBを実行する。
  471: ソースファイルを探索するディレクトリ群を指定するには、
  472: 変数@code{gud-xdb-directories}を使う。
  473: 
  474: @item M-x sdb @key{RET} @var{file} @key{RET}
  475: @findex sdb
  476: @c Similar, but run SDB instead of GDB.
  477: 同様に、GDBのかわりにSDBを実行する。
  478: 
  479: @c   Some versions of SDB do not mention source file names in their
  480: @c messages.  When you use them, you need to have a valid tags table
  481: @c (@pxref{Tags}) in order for GUD to find functions in the source code.
  482: @c If you have not visited a tags table or the tags table doesn't list one
  483: @c of the functions, you get a message saying @samp{The sdb support
  484: @c requires a valid tags table to work}.  If this happens, generate a valid
  485: @c tags table in the working directory and try again.
  486: SDBのバージョンによっては、メッセージにソースファイル名を
  487: 含めないものがある。
  488: そのようなSDBを使う場合には、GUDがソースコードから関数を探せるように
  489: 正しいタグテーブル(@pxref{Tags})が必要である。
  490: タグテーブルを訪問していなかったり、
  491: タグテーブルに当該関数がなかったりすると、
  492: @samp{The sdb support requires a valid tag table to work}という
  493: メッセージが表示される。
  494: このような場合には、作業ディレクトリに正しいタグファイルを生成してから
  495: やり直す。
  496: 
  497: @item M-x perldb @key{RET} @var{file} @key{RET}
  498: @findex perldb
  499: @c Run the Perl interpreter in debug mode to debug @var{file}, a Perl program.
  500: Perlプログラム@var{file}をデバッグするために
  501: Perlインタープリタをデバッグモードで実行する。
  502: 
  503: @item M-x jdb @key{RET} @var{file} @key{RET}
  504: @findex jdb
  505: @c Run the Java debugger to debug @var{file}.
  506: @var{file}をデバッグするためにJavaデバッガを実行する。
  507: 
  508: @item M-x pdb @key{RET} @var{file} @key{RET}
  509: @findex pdb
  510: @c Run the Python debugger to debug @var{file}.
  511: @var{file}をデバッグするためにPythonデバッガを実行する。
  512: @end table
  513: 
  514: @c   Each of these commands takes one argument: a command line to invoke
  515: @c the debugger.  In the simplest case, specify just the name of the
  516: @c executable file you want to debug.  You may also use options that the
  517: @c debugger supports.  However, shell wildcards and variables are not
  518: @c allowed.  GUD assumes that the first argument not starting with a
  519: @c @samp{-} is the executable file name.
  520: これらのコマンドは引数を1つ、
  521: つまり、デバッガを起動するコマンド行を取ります。
  522: もっとも単純な場合は、デバッグしたい実行ファイルの名前を指定します。
  523: デバッガに指定できるオプションを使うこともできます。
  524: しかし、シェルのワイルドカードや変数名は使えません。
  525: GUDは、@samp{-}で始まらない最初の引数をデバッグする実行ファイル名であると
  526: 仮定します。
  527: 
  528: @c   Emacs can only run one debugger process at a time.
  529: Emacsはデバッガプロセスを一度に1つだけ実行できます。
  530: 
  531: @node Debugger Operation, Commands of GUD, Starting GUD, Debuggers
  532: @c @subsection Debugger Operation
  533: @subsection デバッガの操作
  534: 
  535: @c   When you run a debugger with GUD, the debugger uses an Emacs buffer
  536: @c for its ordinary input and output.  This is called the GUD buffer.  The
  537: @c debugger displays the source files of the program by visiting them in
  538: @c Emacs buffers.  An arrow (@samp{=>}) in one of these buffers indicates
  539: @c the current execution line.  Moving point in this buffer does not move
  540: @c the arrow.
  541: GUDの下でデバッガを実行すると、
  542: デバッガは通常の入出力にEmacsバッファを使います。
  543: このバッファをGUDバッファと呼びます。
  544: デバッガはEmacsバッファでファイルを訪問して、
  545: プログラムのソースファイルを表示します。
  546: このようなバッファの1つに矢印(@samp{=>})が表示され、
  547: 現在実行している行を表示します。
  548: このバッファでポイントを動かしても矢印は動きません。
  549: 
  550: @c   You can start editing these source files at any time in the buffers
  551: @c that were made to display them.  The arrow is not part of the file's
  552: @c text; it appears only on the screen.  If you do modify a source file,
  553: @c keep in mind that inserting or deleting lines will throw off the arrow's
  554: @c positioning; GUD has no way of figuring out which line corresponded
  555: @c before your changes to the line number in a debugger message.  Also,
  556: @c you'll typically have to recompile and restart the program for your
  557: @c changes to be reflected in the debugger's tables.
  558: ソースファイルを表示したバッファでは、いつでもソースファイルを編集できます。
  559: 矢印はファイルのテキストの一部ではなく、画面上に表示されているだけです。
  560: ソースファイルを変更するとき、
  561: 行を挿入/削除すると矢印の表示位置情報が失われることに注意してください。
  562: GUDには、変更前のデバッガメッセージから変更後の対応する行番号を知る術は
  563: ありません。
  564: また、デバッガにソースの変更を反映するには、
  565: プログラムを再コンパイルしてから再実行する必要があります。
  566: 
  567: @c   If you wish, you can control your debugger process entirely through the
  568: @c debugger buffer, which uses a variant of Shell mode.  All the usual
  569: @c commands for your debugger are available, and you can use the Shell mode
  570: @c history commands to repeat them.  @xref{Shell Mode}.
  571: お好みならば、シェル(shell)モードの変形を用いた
  572: デバッガバッファを介して、デバッガプロセスを完全に制御することもできます。
  573: こうすれば、デバッガのすべてのコマンドを利用でき、
  574: シェル(shell)モードの履歴機能を用いて
  575: コマンドを繰り返し実行できます。
  576: @xref{Shell Mode}。
  577: 
  578: @node Commands of GUD, GUD Customization, Debugger Operation, Debuggers
  579: @c @subsection Commands of GUD
  580: @subsection GUDのコマンド
  581: 
  582: @c   The GUD interaction buffer uses a variant of Shell mode, so the
  583: @c commands of Shell mode are available (@pxref{Shell Mode}).  GUD mode
  584: @c also provides commands for setting and clearing breakpoints, for
  585: @c selecting stack frames, and for stepping through the program.  These
  586: @c commands are available both in the GUD buffer and globally, but with
  587: @c different key bindings.
  588: GUD対話バッファはシェル(shell)モードの変形を使うので、
  589: シェル(shell)モードのコマンドを使えます(@pxref{Shell Mode})。
  590: GUDモードでは、ブレークポイントの設定と解除、スタックフレームの選択、
  591: プログラムのステップ実行などのコマンドもあります。
  592: これらのコマンドはGUDバッファでもそれ以外でも使えますが、
  593: キーバインドは異なります。
  594: 
  595: @c   The breakpoint commands are usually used in source file buffers,
  596: @c because that is the way to specify where to set or clear the breakpoint.
  597: @c Here's the global command to set a breakpoint:
  598: ブレークポイントコマンドは、普通、ソースファイルのバッファで使います。
  599: というのは、ソース上でブレークポイントを設定/解除するのが自然だからです。
  600: 以下はブレークポイントを設定するグローバルコマンドです。
  601: 
  602: @table @kbd
  603: @item C-x @key{SPC}
  604: @kindex C-x SPC
  605: @c Set a breakpoint on the source line that point is on.
  606: ポイントがあるソース行にブレークポイントを設定する。   
  607: @end table
  608: 
  609: @c @kindex C-x C-a @r{(GUD)}
  610: @kindex C-x C-a @r{(GUD)}
  611: @c   Here are the other special commands provided by GUD.  The keys
  612: @c starting with @kbd{C-c} are available only in the GUD interaction
  613: @c buffer.  The key bindings that start with @kbd{C-x C-a} are available in
  614: @c the GUD interaction buffer and also in source files.
  615: 以下はその他のGUDモード特有のコマンドです。
  616: @kbd{C-c}で始まるキー列は、GUD対話バッファだけで使えます。
  617: @kbd{C-x C-a}で始まるキー列は、
  618: GUD対話バッファとソースファイル(のバッファ)の両方で使えます。
  619: 
  620: @table @kbd
  621: @item C-c C-l
  622: @c @kindex C-c C-l @r{(GUD)}
  623: @kindex C-c C-l @r{(GUD)}
  624: @itemx C-x C-a C-l
  625: @findex gud-refresh
  626: @c Display in another window the last line referred to in the GUD
  627: @c buffer (that is, the line indicated in the last location message).
  628: @c This runs the command @code{gud-refresh}.
  629: GUDバッファで参照した最後の行を別のウィンドウに表示する
  630: (つまり、最新の実行位置メッセージが指す行を表示する)。
  631: これは、コマンド@code{gud-refresh}を実行する。
  632: 
  633: @item C-c C-s
  634: @c @kindex C-c C-s @r{(GUD)}
  635: @kindex C-c C-s @r{(GUD)}
  636: @itemx C-x C-a C-s
  637: @findex gud-step
  638: @c Execute a single line of code (@code{gud-step}).  If the line contains
  639: @c a function call, execution stops after entering the called function.
  640: ソースコード1行分を実行する(@code{gud-step})。
  641: その行に関数呼び出しが含まれる場合は、呼び出された関数に入ってから停止する。
  642: 
  643: @item C-c C-n
  644: @c @kindex C-c C-n @r{(GUD)}
  645: @kindex C-c C-n @r{(GUD)}
  646: @itemx C-x C-a C-n
  647: @findex gud-next
  648: @c Execute a single line of code, stepping across entire function calls
  649: @c at full speed (@code{gud-next}).
  650: ソースコード1行分を実行し、関数呼び出しでも
  651: 停止せずにフルスピードで実行する(@code{gud-next})。
  652: 
  653: @item C-c C-i
  654: @c @kindex C-c C-i @r{(GUD)}
  655: @kindex C-c C-i @r{(GUD)}
  656: @itemx C-x C-a C-i
  657: @findex gud-stepi
  658: @c Execute a single machine instruction (@code{gud-stepi}).
  659: 機械語1命令を実行する(@code{gud-stepi})。
  660: 
  661: @need 3000
  662: @item C-c C-r
  663: @c @kindex C-c C-r @r{(GUD)}
  664: @kindex C-c C-r @r{(GUD)}
  665: @itemx C-x C-a C-r
  666: @findex gud-cont
  667: @c Continue execution without specifying any stopping point.  The program
  668: @c will run until it hits a breakpoint, terminates, or gets a signal that
  669: @c the debugger is checking for (@code{gud-cont}).
  670: 停止位置を指定せずに実行を継続する。
  671: プログラムの実行は、ブレークポイントに出会う、
  672: プログラムが終了する、
  673: デバッガが監視しているシグナルを受け取るまで実行を継続する。
  674: 
  675: @need 1000
  676: @item C-c C-d
  677: @c @kindex C-c C-d @r{(GUD)}
  678: @kindex C-c C-d @r{(GUD)}
  679: @itemx C-x C-a C-d
  680: @findex gud-remove
  681: @c Delete the breakpoint(s) on the current source line, if any
  682: @c (@code{gud-remove}).  If you use this command in the GUD interaction
  683: @c buffer, it applies to the line where the program last stopped.
  684: 現在のソース行にブレークポイントがあるならばそれを削除する
  685: (@code{gud-remove})。
  686: GUD対話バッファでこのコマンドを使うと、
  687: プログラムが最後に停止した行に適用される。
  688: 
  689: @item C-c C-t
  690: @c @kindex C-c C-t @r{(GUD)}
  691: @kindex C-c C-t @r{(GUD)}
  692: @itemx C-x C-a C-t
  693: @findex gud-tbreak
  694: @c Set a temporary breakpoint on the current source line, if any.
  695: @c If you use this command in the GUD interaction buffer,
  696: @c it applies to the line where the program last stopped.
  697: 現在のソース行に一時的なブレークポイントを設定する。
  698: GUD対話バッファでこのコマンドを使うと、
  699: プログラムが最後に停止した行に適用される。
  700: @end table
  701: 
  702: @c   The above commands are common to all supported debuggers.  If you are
  703: @c using GDB or (some versions of) DBX, these additional commands are available:
  704: 上にあげたコマンドは、(GUDから使える)すべてのデバッガに共通です。
  705: GDBやDBX(のあるバージョン)では、さらに以下のコマンドも使えます。
  706: 
  707: @table @kbd
  708: @item C-c <
  709: @c @kindex C-c < @r{(GUD)}
  710: @kindex C-c < @r{(GUD)}
  711: @itemx C-x C-a <
  712: @findex gud-up
  713: @c Select the next enclosing stack frame (@code{gud-up}).  This is
  714: @c equivalent to the @samp{up} command.
  715: 1つ外側のスタックフレームを選択する(@code{gud-up})。
  716: これは@samp{up}コマンドと等価。
  717: 
  718: @item C-c >
  719: @c @kindex C-c > @r{(GUD)}
  720: @kindex C-c > @r{(GUD)}
  721: @itemx C-x C-a >
  722: @findex gud-down
  723: @c Select the next inner stack frame (@code{gud-down}).  This is
  724: @c equivalent to the @samp{down} command.
  725: 1つ内側のスタックフレームを選択する(@code{gud-down})。
  726: これは@samp{down}コマンドと等価。
  727: @end table
  728: 
  729: @c   If you are using GDB, these additional key bindings are available:
  730: GDBを使う場合には以下のコマンドも使用できます。
  731: 
  732: @table @kbd
  733: @item @key{TAB}
  734: @c @kindex TAB @r{(GUD)}
  735: @kindex TAB @r{(GUD)}
  736: @findex gud-gdb-complete-command
  737: @c With GDB, complete a symbol name (@code{gud-gdb-complete-command}).
  738: @c This key is available only in the GUD interaction buffer, and requires
  739: @c GDB versions 4.13 and later.
  740: GDBでは、シンボル名を補完する(@code{gud-gdb-complete-command})。
  741: このキーはGUDの対話バッファでだけ使える。
  742: また、GDBのバージョンは4.13以降であること。
  743: 
  744: @item C-c C-f
  745: @c @kindex C-c C-f @r{(GUD)}
  746: @kindex C-c C-f @r{(GUD)}
  747: @itemx C-x C-a C-f
  748: @findex gud-finish
  749: @c Run the program until the selected stack frame returns (or until it
  750: @c stops for some other reason).
  751: あらかじめ選択したスタックフレームから戻る
  752: (あるいは、他の理由で停止する)までプログラムを実行する。
  753: @end table
  754: 
  755: @c   These commands interpret a numeric argument as a repeat count, when
  756: @c that makes sense.
  757: これらのコマンドは、意味がある場合には数引数を反復回数として解釈します。
  758: 
  759: @c   Because @key{TAB} serves as a completion command, you can't use it to
  760: @c enter a tab as input to the program you are debugging with GDB.
  761: @c Instead, type @kbd{C-q @key{TAB}} to enter a tab.
  762: @key{TAB}は、補完コマンドとして働くため、
  763: GDBでデバッグしているプログラムへのタブの入力には使えません。
  764: タブを入力するには@kbd{C-q @key{TAB}}と打鍵します。
  765: 
  766: @node GUD Customization,  , Commands of GUD, Debuggers
  767: @c @subsection GUD Customization
  768: @subsection GUDのカスタマイズ
  769: 
  770: @vindex gdb-mode-hook
  771: @vindex dbx-mode-hook
  772: @vindex sdb-mode-hook
  773: @vindex xdb-mode-hook
  774: @vindex perldb-mode-hook
  775: @vindex pdb-mode-hook
  776: @vindex jdb-mode-hook
  777: @c   On startup, GUD runs one of the following hooks: @code{gdb-mode-hook},
  778: @c if you are using GDB; @code{dbx-mode-hook}, if you are using DBX;
  779: @c @code{sdb-mode-hook}, if you are using SDB; @code{xdb-mode-hook}, if you
  780: @c are using XDB; @code{perldb-mode-hook}, for Perl debugging mode;
  781: @c @code{jdb-mode-hook}, for PDB; @code{jdb-mode-hook}, for JDB.  You can
  782: @c =     ~~~ pdb-
  783: @c use these hooks to define custom key bindings for the debugger
  784: @c interaction buffer.  @xref{Hooks}.
  785: GUDが実行を開始すると、
  786: GDBの場合は@code{gdb-mode-hook}、
  787: DBXの場合は@code{dbx-mode-hook}、
  788: SDBの場合は@code{sdb-mode-hook}、
  789: XDBの場合は@code{xdb-mode-hook}、
  790: Perlのデバッグモードの場合は@code{perldb-mode-hook}、
  791: PDBの場合は@code{pdb-mode-hook}、
  792: JDBの場合は@code{jdb-mode-hook}のフックを実行します。
  793: これらのフックを使って、デバッガの対話バッファ用に
  794: 自前のキーバインドを定義できます。
  795: @xref{Hooks}。
  796: 
  797: @c   Here is a convenient way to define a command that sends a particular
  798: @c command string to the debugger, and set up a key binding for it in the
  799: @c debugger interaction buffer:
  800: 以下は、特定のコマンド文字列をデバッガに送るコマンドを定義し、かつ、
  801: そのコマンドに対するキーバインドをデバッガの対話バッファに設定する
  802: 便利な方法です。
  803: 
  804: @findex gud-def
  805: @example
  806: (gud-def @var{function} @var{cmdstring} @var{binding} @var{docstring})
  807: @end example
  808: 
  809: @c   This defines a command named @var{function} which sends
  810: @c @var{cmdstring} to the debugger process, and gives it the documentation
  811: @c string @var{docstring}.  You can use the command thus defined in any
  812: @c buffer.  If @var{binding} is non-@code{nil}, @code{gud-def} also binds
  813: @c the command to @kbd{C-c @var{binding}} in the GUD buffer's mode and to
  814: @c @kbd{C-x C-a @var{binding}} generally.
  815: これは、デバッガプロセスに@var{cmdstring}を送る
  816: @var{function}という名前のコマンドを定義し、
  817: そのコマンドの説明文字列を@var{docstring}とします。
  818: このように定義したコマンドは、どのバッファでも使えます。
  819: @var{binding}が@code{nil}以外の場合、
  820: @code{gud-def}はGUDバッファのモードに対しては
  821: このコマンドを@kbd{C-c @var{binding}}にバインドし、
  822: それ以外に対しては@kbd{C-x C-a @var{binding}}にバインドします。
  823: 
  824: @c   The command string @var{cmdstring} may contain certain
  825: @c @samp{%}-sequences that stand for data to be filled in at the time
  826: @c @var{function} is called:
  827: コマンド文字列@var{cmdstring}には、
  828: @var{function}が呼び出されたときにデータが埋め込まれる
  829: @samp{%}系列を含めることもできます。
  830: 
  831: @table @samp
  832: @item %f
  833: @c The name of the current source file.  If the current buffer is the GUD
  834: @c buffer, then the ``current source file'' is the file that the program
  835: @c stopped in.
  836: @c @c This said, ``the name of the file the program counter was in at the last breakpoint.''
  837: @c @c But I suspect it is really the last stop file.
  838: 現在のソースファイルの名前。
  839: カレントバッファがGUDバッファだった場合には、
  840: 『現在のソースファイル』とは
  841: プログラムが停止した箇所に対応するソースファイル。
  842: 
  843: @item %l
  844: @c The number of the current source line.  If the current buffer is the GUD
  845: @c buffer, then the ``current source line'' is the line that the program
  846: @c stopped in.
  847: 現在のソース行番号。
  848: カレントバッファがGUDバッファだった場合には、
  849: 『現在のソース行番号』とは
  850: プログラムが停止した箇所に対応するソースファイルの行番号。
  851: 
  852: @item %e
  853: @c The text of the C lvalue or function-call expression at or adjacent to point.
  854: ポイント位置あるいはポイントに隣接する
  855: Cの左辺値か関数呼び出し式。
  856: 
  857: @item %a
  858: @c The text of the hexadecimal address at or adjacent to point.
  859: ポイント位置あるいはポイントに隣接する
  860: 箇所の16進数表記アドレス。
  861: 
  862: @item %p
  863: @c The numeric argument of the called function, as a decimal number.  If
  864: @c the command is used without a numeric argument, @samp{%p} stands for the
  865: @c empty string.
  866: @var{function}を呼ぶときに指定された数引数を10進値表記したもの。
  867: 数引数なしで呼ばれた場合、@samp{%p}は空文字列。
  868: 
  869: @c If you don't use @samp{%p} in the command string, the command you define
  870: @c ignores any numeric argument.
  871: @var{cmdstring}で@samp{%p}を使用しなければ、
  872: 定義しようとしている@var{function}は数引数を無視する。
  873: @end table
  874: 
  875: @node Executing Lisp, Lisp Libraries, Debuggers, Building
  876: @c @section Executing Lisp Expressions
  877: @section Lisp式の実行
  878: 
  879: @c   Emacs has several different major modes for Lisp and Scheme.  They are
  880: @c the same in terms of editing commands, but differ in the commands for
  881: @c executing Lisp expressions.  Each mode has its own purpose.
  882: Emacsには、LispやSchemeのための異なったメジャーモードがいくつかあります。
  883: これらは編集コマンドという意味では同じですが、
  884: Lisp式を実行するコマンドが異なります。
  885: 各モードには固有の目的があります。
  886: 
  887: @table @asis
  888: @c @item Emacs-Lisp mode
  889: @item emacs-lispモード
  890: @c The mode for editing source files of programs to run in Emacs Lisp.
  891: @c This mode defines @kbd{C-M-x} to evaluate the current defun.
  892: @c @xref{Lisp Libraries}.
  893: このモードはEmacs Lispで実行するプログラムのソースファイル編集用。
  894: このモードでは、現在の関数定義を評価する@kbd{C-M-x}を定義する。
  895: @pxref{Lisp Libraries}。
  896: @c @item Lisp Interaction mode
  897: @item lisp対話モード(Lisp Interaction mode)
  898: @c The mode for an interactive session with Emacs Lisp.  It defines
  899: @c @kbd{C-j} to evaluate the sexp before point and insert its value in the
  900: @c buffer.  @xref{Lisp Interaction}.
  901: このモードはEmacs Lispの対話セッション用。
  902: ポイントの直前のS式を評価し、その値をバッファに挿入する@kbd{C-j}を定義する。
  903: @pxref{Lisp Interaction}。
  904: @c @item Lisp mode
  905: @item lispモード
  906: @c The mode for editing source files of programs that run in Lisps other
  907: @c than Emacs Lisp.  This mode defines @kbd{C-M-x} to send the current defun
  908: @c to an inferior Lisp process.  @xref{External Lisp}.
  909: このモードはEmacs Lisp以外のLispで実行するプログラムのソースコード編集用。
  910: このモードでは、
  911: 現在の関数定義を下位のLispプロセスに送る@kbd{C-M-x}を定義する。
  912: @pxref{External Lisp}。
  913: @c @item Inferior Lisp mode
  914: @item 下位lispモード(Inferior Lisp mode)
  915: @c The mode for an interactive session with an inferior Lisp process.
  916: @c This mode combines the special features of Lisp mode and Shell mode
  917: @c (@pxref{Shell Mode}).
  918: このモードは下位Lispプロセスとの対話セッション用。
  919: このモードは、lispモードとシェル(shell)モード(@pxref{Shell Mode})
  920: の特別な機能の組み合わせ。
  921: @c @item Scheme mode
  922: @item schemeモード
  923: @c Like Lisp mode but for Scheme programs.
  924: lispモードと同様だが、Schemeプログラム編集用。
  925: @c @item Inferior Scheme mode
  926: @item 下位Schemeモード(Inferior Scheme mode)
  927: @c The mode for an interactive session with an inferior Scheme process.
  928: このモードは下位のSchemeプロセスとの対話セッション用。
  929: @end table
  930: 
  931: @c   Most editing commands for working with Lisp programs are in fact
  932: @c available globally.  @xref{Programs}.
  933: Lispプログラム用の編集コマンドの大部分は事実上どこでも使えます。
  934: @xref{Programs}。
  935: 
  936: @node Lisp Libraries, Lisp Interaction, Executing Lisp, Building
  937: @c @section Libraries of Lisp Code for Emacs
  938: @section Emacs用のLispコードのライブラリ
  939: @c @cindex libraries
  940: @cindex ライブラリ
  941: @c @cindex loading Lisp code
  942: @cindex Lispコードのロード
  943: @cindex ロード(Lispコード)
  944: 
  945: @c   Lisp code for Emacs editing commands is stored in files whose names
  946: @c conventionally end in @file{.el}.  This ending tells Emacs to edit them in
  947: @c Emacs-Lisp mode (@pxref{Executing Lisp}).
  948: Emacs編集コマンドのLispコードは、習慣的に@file{.el}で終る名前の
  949: ファイルに格納されています。
  950: これらの拡張子は、
  951: emacs-lispモードで編集するようにEmacsに指示します
  952: (@pxref{Executing Lisp})。
  953: 
  954: @findex load-file
  955: @c   To execute a file of Emacs Lisp code, use @kbd{M-x load-file}.  This
  956: @c command reads a file name using the minibuffer and then executes the
  957: @c contents of that file as Lisp code.  It is not necessary to visit the
  958: @c file first; in any case, this command reads the file as found on disk,
  959: @c not text in an Emacs buffer.
  960: Emacs Lispコードのファイルを実行するには、
  961: @kbd{M-x load-file}を使います。
  962: このコマンドは、ミニバッファでファイル名を読み取り、
  963: そのファイルの内容をLispコードとして実行します。
  964: あらかじめファイルを訪問しておく必要はありません。
  965: いずれにしても、このコマンドはディスク上のファイルを読むのであって、
  966: Emacsバッファのテキストを読むのではありません。
  967: 
  968: @findex load
  969: @findex load-library
  970: @c   Once a file of Lisp code is installed in the Emacs Lisp library
  971: @c directories, users can load it using @kbd{M-x load-library}.  Programs can
  972: @c load it by calling @code{load-library}, or with @code{load}, a more primitive
  973: @c function that is similar but accepts some additional arguments.
  974: LispコードのファイルをEmacs Lispライブラリのディレクトリに置いておけば、
  975: そのファイルは@kbd{M-x load-library}でロードできます。
  976: プログラムからは、@code{load-library}を呼んでロードするか、あるいは、
  977: より基本的な類似の関数で余分な引数も指定できる@code{load}でロードします。
  978: 
  979: @c   @kbd{M-x load-library} differs from @kbd{M-x load-file} in that it
  980: @c searches a sequence of directories and tries three file names in each
  981: @c directory.  Suppose your argument is @var{lib}; the three names are
  982: @c @file{@var{lib}.elc}, @file{@var{lib}.el}, and lastly just
  983: @c @file{@var{lib}}.  If @file{@var{lib}.elc} exists, it is by convention
  984: @c the result of compiling @file{@var{lib}.el}; it is better to load the
  985: @c compiled file, since it will load and run faster.
  986: @kbd{M-x load-library}が@kbd{M-x load-file}と異なる点は、
  987: 一連のディレクトリについて3つのファイル名を順に調べるということです。
  988: 引数が@var{lib}だとすると、3つのファイル名とは、
  989: @file{@var{lib}.elc}、@file{@var{lib}.el}、そして最後に@file{@var{lib}}です。
  990: @file{@var{lib}.elc}というファイルが存在すれば、
  991: これは習慣として@file{@var{lib}.el}をコンパイルしたものです。
  992: コンパイル済みのファイルはロードと実行が速いので、
  993: こちらをロードするほうが有利です。
  994: 
  995: @c   If @code{load-library} finds that @file{@var{lib}.el} is newer than
  996: @c @file{@var{lib}.elc} file, it prints a warning, because it's likely that
  997: @c somebody made changes to the @file{.el} file and forgot to recompile
  998: @c it.
  999: @code{load-library}が@file{@var{lib}.elc}よりも新しい
 1000: @file{@var{lib}.el}をみつけると、警告を出力します。
 1001: というのは、@file{.el}ファイルを変更後に再コンパイルし忘れている
 1002: 可能性があるからです。
 1003: 
 1004: @c   Because the argument to @code{load-library} is usually not in itself
 1005: @c a valid file name, file name completion is not available.  Indeed, when
 1006: @c using this command, you usually do not know exactly what file name
 1007: @c will be used.
 1008: @code{load-library}の引数は、通常、それ自体では
 1009: 正しいファイル名でないことが多いため、ファイル名の補完はできません。
 1010: もちろん、このコマンドを使うとき、
 1011: 指定すべき正確なファイル名を普通は知らないでしょうが。
 1012: 
 1013: @vindex load-path
 1014: @c   The sequence of directories searched by @kbd{M-x load-library} is
 1015: @c specified by the variable @code{load-path}, a list of strings that are
 1016: @c directory names.  The default value of the list contains the directory where
 1017: @c the Lisp code for Emacs itself is stored.  If you have libraries of
 1018: @c your own, put them in a single directory and add that directory
 1019: @c to @code{load-path}.  @code{nil} in this list stands for the current default
 1020: @c directory, but it is probably not a good idea to put @code{nil} in the
 1021: @c list.  If you find yourself wishing that @code{nil} were in the list,
 1022: @c most likely what you really want to do is use @kbd{M-x load-file}
 1023: @c this once.
 1024: @kbd{M-x load-library}が探索するディレクトリの順番は、
 1025: 変数@code{load-path}で指定します。
 1026: その値は、ディレクトリ名の文字列から成るリストです。
 1027: リストのデフォルト値には、Emacs自身のLispコードを収めたディレクトリが
 1028: 含まれます。
 1029: 個人用のLispライブラリがあるならば、それらを1つのディレクトリにまとめ、
 1030: そのディレクトリ名を@code{load-path}に追加してください。
 1031: リスト内の@code{nil}はカレントデフォルトディレクトリを表しますが、
 1032: リストに@code{nil}を加えることはあまり勧められません。
 1033: リストに@code{nil}が本当に必要だと感じたときには、
 1034: それについては@kbd{M-x load-file}を実行するのでは
 1035: いけないだろうかと考えてみてください。
 1036: 
 1037: @c @cindex autoload
 1038: @cindex 自動ロード
 1039: @c   Often you do not have to give any command to load a library, because
 1040: @c the commands defined in the library are set up to @dfn{autoload} that
 1041: @c library.  Trying to run any of those commands calls @code{load} to load
 1042: @c the library; this replaces the autoload definitions with the real ones
 1043: @c from the library.
 1044: ライブラリの中で定義されているコマンドに対しては、
 1045: そのライブラリを@dfn{自動的にロード}(autoload)するように
 1046: 設定されているので、ほとんどの場合、ライブラリをロードするコマンドを
 1047: 指定する必要はないでしょう。
 1048: ライブラリをロードするために@code{load}を呼び出すようなコマンドを1つ
 1049: 試してみてください。
 1050: こうすると、「自動的にロードする」という定義が
 1051: ライブラリ内の実際の定義で置き換わります。
 1052: 
 1053: @c @cindex byte code
 1054: @cindex バイトコード
 1055: @c   Emacs Lisp code can be compiled into byte-code which loads faster,
 1056: @c takes up less space when loaded, and executes faster.  @xref{Byte
 1057: @c Compilation,, Byte Compilation, elisp, the Emacs Lisp Reference Manual}.
 1058: @c By convention, the compiled code for a library goes in a separate file
 1059: @c whose name consists of the library source file with @samp{c} appended.
 1060: @c Thus, the compiled code for @file{foo.el} goes in @file{foo.elc}.
 1061: @c That's why @code{load-library} searches for @samp{.elc} files first.
 1062: Emacs Lispコードはバイトコードにコンパイルできます。
 1063: コンパイルすると、ロードが速くなり、ロードしても必要な記憶容量が少なくなり、
 1064: 実行も速くなります。
 1065: @xref{Byte Compilation,, バイトコンパイル, elisp,
 1066: Emacs Lisp リファレンスマニュアル}。
 1067: 習慣として、ライブラリのコンパイル済みのコードは、
 1068: ライブラリのソースファイル名に@samp{c}を付けた名前の
 1069: 別のファイルに入ります。
 1070: したがって、@file{foo.el}のコンパイル済みのコードは、@file{foo.elc}に入ります。
 1071: これが、@code{load-library}はまず@samp{.elc}というファイルを探す理由です。
 1072: 
 1073: @node Lisp Eval, External Lisp, Lisp Interaction, Building
 1074: @c @section Evaluating Emacs-Lisp Expressions
 1075: @section Emacs Lisp式の評価
 1076: @c @cindex Emacs-Lisp mode
 1077: @cindex emacs-lispモード
 1078: @c @cindex mode, Emacs-Lisp
 1079: @cindex モード、Emacs-Lisp
 1080: 
 1081: @findex emacs-lisp-mode
 1082: @c   Lisp programs intended to be run in Emacs should be edited in
 1083: @c Emacs-Lisp mode; this happens automatically for file names ending in
 1084: @c @file{.el}.  By contrast, Lisp mode itself is used for editing Lisp
 1085: @c programs intended for other Lisp systems.  To switch to Emacs-Lisp mode
 1086: @c explicitly, use the command @kbd{M-x emacs-lisp-mode}.
 1087: Emacs内で動かすつもりのLispプログラムは、emacs-lispモードで編集しましょう。
 1088: ファイル名が@file{.el}で終っているファイルを編集すると、
 1089: 自動的にこのモードになります。
 1090: 一方、lispモードは、他のLispシステム向けのLispプログラムを編集する
 1091: ためのモードです。
 1092: 陽にemacs-lispモードに移るには、コマンド@kbd{M-x emacs-lisp-mode}を使います。
 1093: 
 1094: @c   For testing of Lisp programs to run in Emacs, it is often useful to
 1095: @c evaluate part of the program as it is found in the Emacs buffer.  For
 1096: @c example, after changing the text of a Lisp function definition,
 1097: @c evaluating the definition installs the change for future calls to the
 1098: @c function.  Evaluation of Lisp expressions is also useful in any kind of
 1099: @c editing, for invoking noninteractive functions (functions that are
 1100: @c not commands).
 1101: Emacs内で動くプログラムのテストには、
 1102: Emacsバッファにあるプログラムの一部を評価すると便利です。
 1103: たとえば、Lispの関数定義のテキストを変更してからその定義を評価すると、
 1104: それ以降にその関数を呼び出すと使われるようにインストールされます。
 1105: Lisp式を評価すると非対話的な(コマンドではない)関数を起動できるので、
 1106: どんな種類の編集作業にも便利です。
 1107: 
 1108: @table @kbd
 1109: @item M-:
 1110: @c Read a single Lisp expression in the minibuffer, evaluate it, and print
 1111: @c the value in the echo area (@code{eval-expression}).
 1112: ミニバッファで1つのLisp式を読み取り、それを評価し、
 1113: その値をエコー領域に表示する
 1114: (@code{eval-expression})。
 1115: @item C-x C-e
 1116: @c Evaluate the Lisp expression before point, and print the value in the
 1117: @c echo area (@code{eval-last-sexp}).
 1118: ポイントの直前のLisp式を評価し、その値をエコー領域に表示する
 1119: (@code{eval-last-sexp})。
 1120: @item C-M-x
 1121: @c Evaluate the defun containing or after point, and print the value in
 1122: @c the echo area (@code{eval-defun}).
 1123: ポイントを含むか直後にある関数定義(defun)を評価し、
 1124: その値をエコー領域に表示する(@code{eval-defun})。
 1125: @item M-x eval-region
 1126: @c Evaluate all the Lisp expressions in the region.
 1127: リージョン内のすべてのLisp式を評価する。
 1128: @item M-x eval-current-buffer
 1129: @c Evaluate all the Lisp expressions in the buffer.
 1130: バッファ内のすべてのLisp式を評価する。
 1131: @end table
 1132: 
 1133: @kindex M-:
 1134: @findex eval-expression
 1135: @c   @kbd{M-:} (@code{eval-expression}) is the most basic command for evaluating
 1136: @c a Lisp expression interactively.  It reads the expression using the
 1137: @c minibuffer, so you can execute any expression on a buffer regardless of
 1138: @c what the buffer contains.  When the expression is evaluated, the current
 1139: @c buffer is once again the buffer that was current when @kbd{M-:} was
 1140: @c typed.
 1141: @kbd{M-:}(@code{eval-expression})は、Lisp式を対話的に評価する
 1142: もっとも基本的なコマンドです。
 1143: これは、ミニバッファで式を1つ読み取りますから、
 1144: バッファの内容に関係なくバッファ内でどんな式でも実行できます。
 1145: 式が評価されたあとは、
 1146: @kbd{M-:}を打鍵したときのカレントバッファが、ふたたびカレントバッファになります。
 1147: 
 1148: @c @kindex C-M-x @r{(Emacs-Lisp mode)}
 1149: @kindex C-M-x @r{(emacs-lispモード)}
 1150: @findex eval-defun
 1151: @c   In Emacs-Lisp mode, the key @kbd{C-M-x} is bound to the command
 1152: @c @code{eval-defun}, which parses the defun containing or following point
 1153: @c as a Lisp expression and evaluates it.  The value is printed in the echo
 1154: @c area.  This command is convenient for installing in the Lisp environment
 1155: @c changes that you have just made in the text of a function definition.
 1156: emacs-lispモードでは、キー@kbd{C-M-x}はコマンド@code{eval-defun}にバインド
 1157: されています。
 1158: このコマンドはポイントを含むか直後にある関数定義を
 1159: Lisp式として解析し評価します。
 1160: その値はエコー領域に表示されます。
 1161: このコマンドは、関数定義のテキストの変更を
 1162: Lisp環境に反映するのに便利です。
 1163: 
 1164: @c   @kbd{C-M-x} treats @code{defvar} expressions specially.  Normally,
 1165: @c evaluating a @code{defvar} expression does nothing if the variable it
 1166: @c defines already has a value.  But @kbd{C-M-x} unconditionally resets the
 1167: @c variable to the initial value specified in the @code{defvar} expression.
 1168: @c This special feature is convenient for debugging Lisp programs.
 1169: @kbd{C-M-x}は@code{defvar}式を特別扱いします。
 1170: 通常、変数にすでに値が定義されている場合には、
 1171: @code{defvar}式を評価しても何もしません。
 1172: しかし、@kbd{C-M-x}は、@code{defvar}式で指定されている
 1173: 初期値に変数の値を戻します。
 1174: この特別な機能は、Lispプログラムをデバッグするときに便利です。
 1175: 
 1176: @kindex C-x C-e
 1177: @findex eval-last-sexp
 1178: @c   The command @kbd{C-x C-e} (@code{eval-last-sexp}) evaluates the Lisp
 1179: @c expression preceding point in the buffer, and displays the value in the
 1180: @c echo area.  It is available in all major modes, not just Emacs-Lisp
 1181: @c mode.  It does not treat @code{defvar} specially.
 1182: コマンド@kbd{C-x C-e}(@code{eval-last-sexp})は、
 1183: ポイントのまえにあるLisp式を評価し
 1184: その値をエコー領域に表示します。
 1185: このコマンドはemacs-lispモードだけでなく、
 1186: すべてのメジャーモードで使えます。
 1187: このコマンドは、@code{defvar}を特別扱いしません。
 1188: 
 1189: @c   If @kbd{C-M-x}, @kbd{C-x C-e}, or @kbd{M-:} is given a numeric
 1190: @c argument, it inserts the value into the current buffer at point, rather
 1191: @c than displaying it in the echo area.  The argument's value does not
 1192: @c matter.
 1193: @kbd{C-M-x}、@kbd{C-x C-e}、@kbd{M-:}に数引数を指定すると、
 1194: 値をエコー領域に表示するかわりにカレントバッファのポイント位置に挿入します。
 1195: 引数の値は関係ありません。
 1196: 
 1197: @findex eval-region
 1198: @findex eval-current-buffer
 1199: @c   The most general command for evaluating Lisp expressions from a buffer
 1200: @c is @code{eval-region}.  @kbd{M-x eval-region} parses the text of the
 1201: @c region as one or more Lisp expressions, evaluating them one by one.
 1202: @c @kbd{M-x eval-current-buffer} is similar but evaluates the entire
 1203: @c buffer.  This is a reasonable way to install the contents of a file of
 1204: @c Lisp code that you are just ready to test.  Later, as you find bugs and
 1205: @c change individual functions, use @kbd{C-M-x} on each function that you
 1206: @c change.  This keeps the Lisp world in step with the source file.
 1207: バッファでLisp式を評価するもっとも一般的なコマンドは@code{eval-region}です。
 1208: @kbd{M-x eval-region}は、リージョン内の1つ以上のLisp式を解析して、
 1209: それらを1つずつ順に評価します。
 1210: @kbd{M-x eval-current-buffer}も同様ですが、バッファ全体を評価します。
 1211: これは、
 1212: テスト準備が整ったLispコードのファイルの内容を取り込むうまい方法です。
 1213: 個々の関数のバグを発見して修正したら、
 1214: 変更した関数それぞれに@kbd{C-M-x}を使います。
 1215: これによって、Lispの環境とソースファイルが一致します。
 1216: 
 1217: @node Lisp Interaction, Lisp Eval, Lisp Libraries, Building
 1218: @c @section Lisp Interaction Buffers
 1219: @section lisp対話バッファ
 1220: 
 1221: @c   The buffer @samp{*scratch*} which is selected when Emacs starts up is
 1222: @c provided for evaluating Lisp expressions interactively inside Emacs.
 1223: Emacsが動き始めたときに選択されるバッファ@samp{*scratch*}は、
 1224: Emacs内でLisp式を対話的に評価するためのものです。
 1225: 
 1226: @c   The simplest way to use the @samp{*scratch*} buffer is to insert Lisp
 1227: @c expressions and type @kbd{C-j} after each expression.  This command
 1228: @c reads the Lisp expression before point, evaluates it, and inserts the
 1229: @c value in printed representation before point.  The result is a complete
 1230: @c typescript of the expressions you have evaluated and their values.
 1231: @samp{*scratch*}バッファを使うもっとも簡単な方法は、
 1232: Lisp式を挿入してから各式の末尾で@kbd{C-j}と打つことです。
 1233: このコマンドは、ポイントの直前のLisp式を読み取り、
 1234: それを評価し、その値を表示形式でポイントのまえに挿入します。
 1235: この結果は、評価した式とその値の完全なtypescript
 1236: @footnote{【訳注】
 1237: 入力と出力をすべて記録した対話記録}です。
 1238: 
 1239: @c   The @samp{*scratch*} buffer's major mode is Lisp Interaction mode, which
 1240: @c is the same as Emacs-Lisp mode except for the binding of @kbd{C-j}.
 1241: @samp{*scratch*}バッファのメジャーモードは
 1242: lisp対話(lisp interaction)モードであり、
 1243: @kbd{C-j}のバインディングを除けば
 1244: emacs-lispモードと同じです。
 1245: 
 1246: @findex lisp-interaction-mode
 1247: @c   The rationale for this feature is that Emacs must have a buffer when
 1248: @c it starts up, but that buffer is not useful for editing files since a
 1249: @c new buffer is made for every file that you visit.  The Lisp interpreter
 1250: @c typescript is the most useful thing I can think of for the initial
 1251: @c buffer to do.  Type @kbd{M-x lisp-interaction-mode} to put the current
 1252: @c buffer in Lisp Interaction mode.
 1253: この機能が存在する理由を説明しましょう。
 1254: Emacsが実行を開始すると何かしらバッファが必要です。
 1255: しかし、ファイルを訪問するたびに新たにバッファが作られるので、
 1256: このバッファはファイルを編集するのには適しません。
 1257: 最初のバッファをLispインタープリタのtypescriptにするというのが
 1258: 作者が考えついたもっともよい方法でした。
 1259: @kbd{M-x lisp-interaction-mode}と打つと、
 1260: カレントバッファはlisp対話(lisp interaction)モードになります。
 1261: 
 1262: @findex ielm
 1263: @c   An alternative way of evaluating Emacs Lisp expressions interactively
 1264: @c is to use Inferior Emacs-Lisp mode, which provides an interface rather
 1265: @c like Shell mode (@pxref{Shell Mode}) for evaluating Emacs Lisp
 1266: @c expressions.  Type @kbd{M-x ielm} to create an @samp{*ielm*} buffer
 1267: @c which uses this mode.
 1268: Emacs Lisp式を対話的に評価する別の方法は、
 1269: 下位emacs-lispモードを使うことです。
 1270: このモードは、シェル(shell)モード(@pxref{Shell Mode})に似た
 1271: インターフェイスでEmacs Lisp式を評価できます。
 1272: @kbd{M-x ielm}と打てば、
 1273: 下位emacs-lispモードを使う@samp{*ielm*}バッファが作られます。
 1274: 
 1275: @node External Lisp,  , Lisp Eval, Building
 1276: @c @section Running an External Lisp
 1277: @section 外部Lispの実行
 1278: 
 1279: @c   Emacs has facilities for running programs in other Lisp systems.  You can
 1280: @c run a Lisp process as an inferior of Emacs, and pass expressions to it to
 1281: @c be evaluated.  You can also pass changed function definitions directly from
 1282: @c the Emacs buffers in which you edit the Lisp programs to the inferior Lisp
 1283: @c process.
 1284: Emacsには他のLispシステム上でプログラムを実行する機能があります。
 1285: LispプロセスをEmacsの下位プロセスとして実行し、
 1286: それに式を渡して評価させることができます。
 1287: また、Lispプログラムを編集するEmacsバッファの中で変更した
 1288: 関数定義をそのまま下位のLispプロセスに渡すこともできます。
 1289: 
 1290: @findex run-lisp
 1291: @vindex inferior-lisp-program
 1292: @kindex C-x C-z
 1293: @c   To run an inferior Lisp process, type @kbd{M-x run-lisp}.  This runs
 1294: @c the program named @code{lisp}, the same program you would run by typing
 1295: @c @code{lisp} as a shell command, with both input and output going through
 1296: @c an Emacs buffer named @samp{*lisp*}.  That is to say, any ``terminal
 1297: @c output'' from Lisp will go into the buffer, advancing point, and any
 1298: @c ``terminal input'' for Lisp comes from text in the buffer.  (You can
 1299: @c change the name of the Lisp executable file by setting the variable
 1300: @c @code{inferior-lisp-program}.)
 1301: 下位のLispプロセスを実行するには、@kbd{M-x run-lisp}と打ちます。
 1302: このコマンドは、シェルコマンドとして@code{lisp}と入力するのと同じ
 1303: @code{lisp}という名前のプログラムを実行し、
 1304: プログラムの入出力は@samp{*lisp*}という名前のEmacsバッファを
 1305: 介してやりとりされます。
 1306: つまり、Lispからの『端末出力』はバッファに入りポイントを進め、
 1307: Lispへの『端末入力』はバッファのテキストから取られます。
 1308: (実行したいLisp実行ファイルの名前を変えるには、
 1309: 変数@code{inferior-lisp-program}を設定する。)
 1310: 
 1311: @c   To give input to Lisp, go to the end of the buffer and type the input,
 1312: @c terminated by @key{RET}.  The @samp{*lisp*} buffer is in Inferior Lisp
 1313: @c mode, which combines the special characteristics of Lisp mode with most
 1314: @c of the features of Shell mode (@pxref{Shell Mode}).  The definition of
 1315: @c @key{RET} to send a line to a subprocess is one of the features of Shell
 1316: @c mode.
 1317: Lispに入力を与えるには、バッファの末尾に移動してから入力を打鍵し、
 1318: 最後に@key{RET}を打ちます。
 1319: @samp{*lisp*}バッファは下位lisp(inferior lisp)モードになっていて、
 1320: シェル(shell)モード(@pxref{Shell Mode})
 1321: のほとんどの機能にlispモードの特別な特性を組み合わせています。
 1322: サブプロセスに1行を送るという@key{RET}の定義は、
 1323: シェル(shell)モードの機能の1つです。
 1324: 
 1325: @findex lisp-mode
 1326: @c   For the source files of programs to run in external Lisps, use Lisp
 1327: @c mode.  This mode can be selected with @kbd{M-x lisp-mode}, and is used
 1328: @c automatically for files whose names end in @file{.l}, @file{.lsp}, or
 1329: @c @file{.lisp}, as most Lisp systems usually expect.
 1330: 外部Lispで実行するプログラムのソースファイルにはlispモードを使います。
 1331: このモードは@kbd{M-x lisp-mode}で選択できます。
 1332: また、ほとんどのLispシステムで使われる
 1333: @file{.l}@footnote{【訳注】
 1334: この拡張子はlexやflexのソースファイルにも使われる。}
 1335: や@file{.lsp}や@file{.lisp}で終る名前のファイルには
 1336: このモードが自動的に使われます。
 1337: 
 1338: @c @kindex C-M-x @r{(Lisp mode)}
 1339: @kindex C-M-x @r{(lispモード)}
 1340: @findex lisp-eval-defun
 1341: @c   When you edit a function in a Lisp program you are running, the easiest
 1342: @c way to send the changed definition to the inferior Lisp process is the key
 1343: @c @kbd{C-M-x}.  In Lisp mode, this runs the function @code{lisp-eval-defun},
 1344: @c which finds the defun around or following point and sends it as input to
 1345: @c the Lisp process.  (Emacs can send input to any inferior process regardless
 1346: @c of what buffer is current.)
 1347: 実行中のLispプログラムの関数を編集しているとき、
 1348: 変更した定義を下位のLispプロセスに送るもっとも簡単な方法は
 1349: キー@kbd{C-M-x}です。
 1350: lispモードでは、このキーは関数@code{lisp-eval-defun}を実行します。
 1351: この関数は、ポイントの周りや直後の関数定義を探し、
 1352: それをLispプロセスの入力へ送ります。
 1353: (Emacsはカレントバッファが何であるかに関わりなく、
 1354: どんな下位プロセスにも入力を送ることができる。)
 1355: 
 1356: @c   Contrast the meanings of @kbd{C-M-x} in Lisp mode (for editing programs
 1357: @c to be run in another Lisp system) and Emacs-Lisp mode (for editing Lisp
 1358: @c programs to be run in Emacs): in both modes it has the effect of installing
 1359: @c the function definition that point is in, but the way of doing so is
 1360: @c different according to where the relevant Lisp environment is found.
 1361: @c @xref{Executing Lisp}.
 1362: @kbd{C-M-x}コマンドの
 1363: (任意のLispシステムで実行するプログラムの編集用)lispモードでの意味と
 1364: (Emacsで実行するLispプログラムの編集用)emacs-lispモードでの意味を
 1365: 比較してみましょう。
 1366: どちらのモードでもポイントを含む関数定義をインストールしますが、
 1367: 関連するLisp環境がどこにあるかに応じて、その方法は異なります。
 1368: @xref{Executing Lisp}。

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>