[JM:00506] Re: [POST:DO] bash bash.1

Back to archive index

Masakazu Takahashi emasa****@gmail*****
2011年 11月 22日 (火) 22:03:28 JST


こんにちは。

間があいてすみません。まとめていきます。

2011/11/10 Akihiro MOTOKI <motok****@da*****>:
> bash.1 のチェックですが、git での diff の形で、いつもの
> コメント形式とは違いますが、お送りします。
> お返事頂く際には適宜引用頂けると助かります。

レビューありがとうございます。全部チェックのうえ、いちど git am で取り
込んで、以下のように再変更を加えました。

https://github.com/emasaka/bash-jman/commit/3a39867db976a136a9f534a9ed53745edd4aee97


■0001-Comments-for-HISTORY-and-HISTORY-EXPANSION.patch

>  .\"O Refer to the most recent command preceding the current position in the
>  .\"O history list starting with
>  .\"O .IR string .
> +.\"O motoki: preceding the current positoion in the history list に対応する訳がない。
>  .IR string
>  で始まるコマンドのうち、一番現在に近いところで実行したものを参照します。

以下のように変更しました。

    で始まるコマンドのうち、履歴リスト中の現在位置以前で、
    一番近いところで実行したものを参照します。


>  .B !?\fIstring\fR\fB[?]\fR
>  .\"O Refer to the most recent command preceding the current postition in the
>  .\"O history list containing
>  .\"O .IR string .

> +.\"O motoki: preceding the current positoion in the history list に対応する訳がない。
>  .I string
>  を含むコマンドのうち、一番現在に近いところで実行したものを参照します。

以下のように変更しました。

   string を含むコマンドのうち、履歴リスト中の現在位置以前で、
    一番近いところで実行したものを参照します。


■0001-Comments-for-READLINE-section.patch

>  .\"O The following symbolic character names are recognized:
> -認識されるシンボリックな文字名を以下に示します:
> +.\"O motoki: 分かりにくいと思いました。
> +以下に示すシンボル名を使うことができます:

元木さんの変更を採用してコメントを削除しました。

>  .\"O When a variable value is read, empty or null values, "on" (case-insensitive),
>  .\"O and "1" are equivalent to \fBOn\fP.  All other values are equivalent to
>  .\"O \fBOff\fP.

> +.\"O motoki: null value というのは具体的にどういうことなのだろう???
> +.\"O motoki: emtpy value と null value というのはどう違うのか。
> +.\"O motoki: 必要なら元の英語や注釈を加えた方がいいかも。
>  変数の値を読み取るとき、空や空白の値、"on" (大文字と小文字は区別しない)、
>  "1" は \fBOn\fP とみなされます。それ以外の値は \fBOff\fP とみなされます。

改めて C による内部実装を調べてみると、NULL か 空文字列ということでした。

bind.c より:
|  return (value == 0 || *value == '\0' ||

「空や空白の値」を「設定されてない場合や、空文字列」と変更しました。

>  .B revert\-all\-at\-newline (Off)
>  .\"O If set to \fBOn\fP, readline will undo all changes to history lines
>  .\"O before returning when \fBaccept\-line\fP is executed.  By default,
>  .\"O history lines may be modified and retain individual undo lists across
>  .\"O calls to \fBreadline\fP.
> +.\"O motoki: もう少しチェックする必要あり
>  \fBOn\fP が設定されていると、
>  \fBaccept\-line\fP が実行されて readline から戻るときに、
>  履歴に加えられた全ての変更を元に戻します。
>  デフォルトでは、\fBreadline\fP の各呼び出しを通じて
>  履歴行が変更され単一のアンドゥリストが保持されます。

>  .B skip\-completed\-text (Off)
>  .\"O If set to \fBOn\fP, this alters the default completion behavior when
>  .\"O inserting a single match into the line.  It's only active when
>  .\"O performing completion in the middle of a word.  If enabled, readline
>  .\"O does not insert characters from the completion that match characters
>  .\"O after point in the word being completed, so portions of the word
>  .\"O following the cursor are not duplicated.
> +.\"O motoki: もう少しチェックが必要
>  \fBOn\fP が設定されていると、
>  これは補完機能がマッチしたものを行に挿入するときのデフォルトの挙動を変えます。
>  単語の途中で補完を実行したときにだけ意味があります。
>  有効になっていると、readline は、単語のカーソル以後の部分が重複しないように、
>  補完された単語のうちポイント以後の文字を挿入しません。

この 2 つのコメントは残しました。

>  .\"O Readline implements a facility similar in spirit to the conditional
>  .\"O compilation features of the C preprocessor which allows key
>  .\"O bindings and variable settings to be performed as the result
>  .\"O of tests.

> +.\"O motoki: 「評価の結果」というのが分かりにくいかな。
>  Readline には、
>  C 言語のプリプロセッサの条件付きコンパイル機能と
>  似たコンセプトに基づく機能が実装されています。
>  これを使うとキー割り当てや変数の設定を評価の結果として実行できます。

以下のように変更しました。

    これを使うと、条件に応じてキー割り当てや変数の設定を実行できます。

> -構文を使うと、編集モードや使っている端末、
> -readline を使っているアプリケーションに基づいた割り当てを行えます。
> -評価文のテキストは行の最後までです。
> +構文を使うと、編集モードや使用中の端末、
> +readline を使っているアプリケーションに応じた割り当てを行えます。
> +行末までの全テキストが評価対象となります。
> +.\"O motoki: 意味が理解できませんでした。

これは直前の元木さんの変更の理由を記したものですよね。
そう解釈して、変更を採用し、コメントを削除しました。

>  .\"O This command, as seen in the previous example, terminates an
>  .\"O \fB$if\fP command.
> -このコマンドは上の例で見たように、\fB$if\fP コマンドを終了させます。
> +\"O motoki: 「上の例で見たように」は最後に括弧書きくらいの方が読みやすい
> +このコマンドは \fB$if\fP コマンドを終了させます (上記の例の通り)。

変更を採用し、コメントを削除しました。

>  .IP \fB$else\fP
>  .\"O Commands in this branch of the \fB$if\fP directive are executed if
>  .\"O the test fails.
> -\fB$if\fP ディレクティブのこの分岐内におけるコマンドは、
> +.\"O motoki: 日本語だけ読んだときに意味が分かりにくかったです。
> +\fB$if\fP ディレクティブのこの分岐内に書かれたコマンドは、

これも直後の元木さんの変更の理由を記したものですよね。
そう解釈して、変更を採用し、コメントを削除しました。

>  .\"O There are two search modes:
>  .\"O .I incremental
>  .\"O and
>  .\"O .IR non-incremental .
> +.\"O motoki: incremental search は日本語だと「逐次検索」になるが、どっちいいか。
>  検索のモードには、
>  .I インクリメンタル (incremental)
>  モードと
>  .I 非インクリメンタル (non-incremental)
>  モードの 2 つがあります。

私は「インクリメンタル検索」をいつも使っているので抵抗はないのですが、
一般的にはどちらがいいでしょうね。

このコメントはそのままにしておきます。

+.\"O motoki: that command は key sequence に対応するコマンドだと思います。
+.\"O motoki: 元の訳の場合、履歴で得られたコマンド自体が実行されるように読めました。
+.\"O motoki: newline の場合は、入力行を実行することを示すので、いいのですが。
+.\"O motoki: "accept" は shell が「受け取る」ということではないでしょうか。
+.\"O motoki: 「入力する」が type の訳としても使われているので区別が必要。
 readline に割り当てられた他のキーシーケンスを入力すると検索が終わり、
-そのコマンドが実行されます。例えば、\fI改行\fPは検索を終了させて、
-その行を入力します。これにより、履歴リスト中のコマンドが実行されます。
+入力したキーシーケンスに対応するコマンドが実行されます。
+例えば、\fI改行\fPは検索を終了させて、その行を入力します。
+これにより、履歴リスト中のコマンドが実行されます。

元木さんの変更を採用してコメントを削除しました。

> -インクリメンタルでない検索の場合には、
> -履歴行にマッチするものの検索を始める前に検索する文字列全体を読み込みます。
> -検索文字列には、ユーザが入力したものか、現在の行の内容の一部を使えます。
> +.\"O motoki: "search string" は他の箇所では「検索文字列」なので、統一。
> +インクリメンタルでない検索の場合には、検索文字列全体を読み込んでから、
> +履歴行にマッチするものの検索を始めます。
> +検索文字列には、ユーザが入力したものか、現在の行の内容の一部が使えます。

元木さんの変更を採用してコメントを削除しました。

> +.\"O motoki: that command は key sequence に対応するコマンドだと思います。
> +.\"O motoki: 元の訳の場合、履歴で得られたコマンド自体が実行されるように読めました。
> +.\"O motoki: newline の場合は、入力行を実行することを示すので、いいのですが。
> +.\"O motoki: "accept" は shell が「受け取る」ということではないでしょうか。
> +.\"O motoki: 「入力する」が type の訳としても使われているので区別が必要。
>  readline に割り当てられた他のキーシーケンスを入力すると検索が終わり、
> -そのコマンドが実行されます。例えば、\fI改行\fPは検索を終了させて、
> -その行を入力します。これにより、履歴リスト中のコマンドが実行されます。
> +入力したキーシーケンスに対応するコマンドが実行されます。
> +例えば、\fI改行\fPは検索を終了させて、その行を入力します。
> +これにより、履歴リスト中のコマンドが実行されます。

元木さんの変更を採用してコメントを削除しました。

 .\"O Move forward to the end of the next word.  Words are composed of
 .\"O alphanumeric characters (letters and digits).
-次の単語の最後に進みます。単語は英数字 (文字と数字) からなります。
+.\"O motoki: letter は「英字」の方がよいかも。「文字」だと character と区別ができない。
+次の単語の最後に進みます。単語は英数字 (英字と数字) からなります。

元木さんの変更を採用してコメントを削除しました。

ふと、厳密にはマルチバイト文字も入るか、と思いましたが、それに疑問を持
つ人には通じるので、ごちゃごちゃ追加することはないですね。

>  .\"O Accept the line regardless of where the cursor is.

> +.\"O motoki: accept を入力というと、文字を type するのと区別がつかない
> +.\"O motoki: さてどうしたものか?「確定する」というのもありかなぁ。
>  カーソルの位置に関わらず、行を入力します。この行が空でなければ、変数

「確定」を採用してコメントを削除しました。

>  .SS キルとヤンク
> +.\"O motoki: kill, yank がカタカナで分かるか?

オライリー社の「入門 GNU Emacs(第 3 版)」では「キル」「ヤンク」と表記
されていました。

とりあえずコメントは残しておきます。

>  .\"O Rotate the kill ring, and yank the new top.

> +.\"O motoki: kill ring の rotate って意味が分かるか?
>  キルリングをローテートし、新たに先頭になったテキストをヤンクします。

原文が 1 単語なのを長く説明するのは好きではないので、以下のように変更し
ました。

    キルリングの順番を 1 つ移動し、新たに先頭になったテキストをヤンクします。

>  .\"O As a special case, if this command is immediately followed by a
>  .\"O character that is neither a digit or minus sign, the argument count
>  .\"O for the next command is multiplied by four.
>  .\"O The argument count is initially one, so executing this function the
>  .\"O first time makes the argument count four, a second time makes the
>  .\"O argument count sixteen, and so on.

>  特殊なケースとして、
> +.\"O motoki: multiplied by four の訳が抜けている。
> +.\"O motoki: argument count を引き数カウントで分かるか。
>  このコマンドの直後に数字でもマイナス記号でもない文字がある場合には、
> -最初は引き数カウントは 1 なので、
> +次のコマンドに対する引き数カウントが 4 倍になります。
> +引き数カウントは最初は 1 なので、
>  この機能を一度実行すると引き数カウントは 4 になり、
> -次に実行すると引き数カウントは 16 になります。
> +もう一度実行すると引き数カウントは 16 になります。

これは直後の元木さんの変更の理由を記したものですよね。
そう解釈して、変更を採用し、コメントを削除しました。

>  .B possible\-filename\-completions (C\-x /)
>  .\"O List the possible completions of the text before point,
>  .\"O treating it as a filename.
> -ポイントの前のテキストについて、補完の候補を列挙します。
> -テキストはファイル名として扱います。
> +.\"O motoki: ポイントの前のテキストをファイル名とみなした場合の
> +.\"O         補完の候補を列挙します、はどうかな。以下同様。
> +ポイントの前のテキストについて補完の候補を列挙します。
> +テキストはファイル名として扱われます。

元木さんの変更を採用してコメントを削除しました。

>  .\"O Attempt completion on the text before point, comparing
>  .\"O the text against lines from the history list for possible
>  .\"O completion matches.
> +.\"O motoki: for 以下は compare にかかるのではないでしょうか。
>  ポイントの前のテキストについて補完を試みます。
> -テキストの比較が行われるのは、
> -履歴リスト中の行のうち補完の候補となるものです。
> +履歴リストの各行に対してテキストの比較が行われ、
> +マッチしたものが補完の候補となります。

>  .\"O Attempt menu completion on the text before point, comparing
>  .\"O the text against lines from the history list for possible
>  .\"O completion matches.
> +.\"O motoki: dynamic-complete-history と同様。
>  ポイントの前のテキストについてメニュー補完を試みます。
> -テキストの比較が行われるのは、
> -履歴リスト中の行のうち補完の候補となるものです。
> +履歴リストの各行に対してテキストの比較が行われ、
> +マッチしたものが補完の候補となります。

元木さんの変更を採用してコメントを削除しました。

>  .\"O Re-execute the last keyboard macro defined, by making the characters
>  .\"O in the macro appear as if typed at the keyboard.
> +.\"O motoki: characters なので、文字列よりも各文字の方がよいかも。
>  最後に定義されたキーボードマクロを再実行します。
> -再実行は、
> -マクロ中の文字列をキーボードでの入力と同様に出力することによって行います。
> +マクロ内の各文字があたかもキーボードから入力されたかのように出力されます。

元木さんの変更を採用してコメントを削除しました。

>  .B character\-search (C\-])
>  .\"O A character is read and point is moved to the next occurrence of that
>  .\"O character.  A negative count searches for previous occurrences.
> +.\"O motoki: 前方、後方って、どちらがいいのでしょう????
>  文字を 1 つ読み込み、
>  その文字が次に現われる場所にポイントを移動させます。
>  負のカウントを与えると、その文字が前に現われた場所を探します。
>  .TP
>  .B character\-search\-backward (M\-C\-])
>  .\"O A character is read and point is moved to the previous occurrence of that
>  .\"O character.  A negative count searches for subsequent occurrences.
>  文字を 1 つ読み込み、
>  その文字が前に現われた場所にポイントを移動させます。
>  負のカウントを与えると、その文字が次に現われる場所を探します。

character-search はいいんですが、そのあとの character-search-backward
がややこしいですね。

とりあえずコメントは残しておきます。

>  .\"O Read enough characters to consume a multi-key sequence such as those
>  .\"O defined for keys like Home and End.  Such sequences begin with a
>  .\"O Control Sequence Indicator (CSI), usually ESC\-[.  If this sequence is
>  .\"O bound to "\e[", keys producing such sequences will have no effect
>  .\"O unless explicitly bound to a readline command, instead of inserting
>  .\"O stray characters into the editing buffer.  This is unbound by default,
>  .\"O but usually bound to ESC\-[.
> -Home や End などのキーに定義されるような複数のキーからなるシーケンスを
> +.\"O motoki: もう少し分かりやすくならないかなぁ。
> +Home や End などのキーに定義されるような複数キーからなるシーケンスを
>  使い切るだけの文字を読み込みます。
>  これらのシーケンスは、通常 ESC\-[ で表されるコントロールシーケンス (CSI)
>  で始まります。
> -このシーケンスが "\e[" に割り当てられていると、
> +このシーケンスが "\e[" に割り当てられているとすると、
> +キーが明示的に readline のコマンドに割り当てられている場合を除き、
>  それらのシーケンスを生み出すキーは、
> -明示的に readline のコマンドに割り当てられているのでなければ、
> -はぐれた文字を編集バッファに挿入するのではなく、何もしません。
> +はぐれた文字を編集バッファに挿入されず、何もしません。
>  このコマンドはデフォルトではキーに割り当てられていませんが、
> -通常 ESC\-[ に割り当てられます。
> +多くの場合 ESC\-[ に割り当てられます。

Home や End は複数キーからなるシーケンスである、ということを説明しだす
と、長くなりそうなんですよね。

とりあえずコメントは残しておきます。

>  .\"O If a numeric argument causes the comment character to be removed, the line
>  .\"O will be executed by the shell.

> -引き数を指定すると、トグル状に動作します。
> +数字の引き数を指定すると、トグル状に動作します。
>  つまり、行の先頭の文字が \fBcomment\-begin\fP の値にマッチしない場合には、
>  その値が挿入されます。マッチする場合には、\fBcomment\-begin\fP
>  の文字が行の先頭から削除されます。
> +.\"O motoki: ????? 原文がよく分からない。
>  いずれの場合も、改行が打ち込まれたのと同じように行の入力が完了します。
>  \fBcomment\-begin\fP のデフォルト値によって、
>  このコマンドは現在の行をシェルのコメントとします。
> -引き数を指定したことでコメントの文字が削除されると、
> +数字の引き数を指定したことでコメントの文字が削除されると、
>  行はシェルにより実行されます。

自分でもすでに忘れてましたが、ここは私がかなり意訳してますね。原文は、
数字の引き数をつけると comment-begin を削除する、というだけです。

こう意訳した理由は憶えていませんが、動作は私の意訳のとおりになることを
再確認しました。どうしましょうか、削ったほうがよいでしょうか。

とりあえず元木さんのコメントは残し、意訳である旨のコメントを「O」なしで
追加しました。

>  .\"O When word completion is attempted for an argument to a command for
>  .\"O which a completion specification (a \fIcompspec\fP) has been defined
>  .\"O using the \fBcomplete\fP builtin (see
>  .\"O .SM
>  .\"O .B "SHELL BUILTIN COMMANDS"
>  .\"O below), the programmable completion facilities are invoked.
> +.\"O motoki: セクション名では programmable completion は「プログラム補完」
>  \fBcomplete\fP 組み込みコマンドで
>  補完仕様 (\fIcompspec\fP) が定義されているコマンドに対して
>  引き数の単語補完が試みられると、
> -プログラム可能な補完の機能が呼び出されます
> -(\fBcomplete\fP 組み込みコマンドについては、後述する
> +プログラム補完の機能が呼び出されます
> +(組み込みコマンド \fBcomplete\fP については、後述する

元木さんの変更を採用してコメントを削除しました。

-- 
Masakazu Takahashi (emasaka)




linuxjm-discuss メーリングリストの案内
Back to archive index