-
-
Notifications
You must be signed in to change notification settings - Fork 113
説明書 §4 編集
[ 日本語 | English ] ≫ 説明書 [§1 基本 | §2 描画 | §3 束縛 | §4 編集 | §5 Emacs | §6 Vim | §7 補完 | §8 他 | 索引]
| 操作 | 編集関数 | 説明 |
|---|---|---|
| __defchar__ | self-insert |
文字を挿入 |
| M-C-m, M-RET (Emacs) | newline |
改行挿入 |
| C-q, C-v | quoted-insert |
次のキー入力の文字をそのまま挿入 |
| insert | overwrite-mode |
上書きモード・挿入モード切り替え |
| paste_begin | bracketed-paste |
Bracketed Paste Mode 開始 |
| __batch_char__ | batch-insert |
文字をまとめて挿入 |
現在位置の他にマークと呼ばれる位置が管理されます。 選択状態にある時、選択範囲はマークと現在位置の間の文字列と解釈されます。
| 操作 | 編集関数 | 説明 |
|---|---|---|
|
C-@, C-SP, NUL M-SP (Emacs) |
set-mark |
現在位置にマークを設定して選択開始 |
| C-x C-x | exchange-point-and-mark |
現在位置とマークを交換 |
| C-w, S-delete | kill-region-or kill-backward-uword |
現在の選択範囲または uword (後述) を切り取り |
|
M-w (Emacs) C-insert |
copy-region-or copy-backward-uword |
現在の選択範囲または uword (後述) をコピー |
| C-y, S-insert | yank |
貼り付け |
| 操作 | 編集関数 | 説明 |
|---|---|---|
| C-f, right | forward-char |
次の文字に移動 |
| C-b, left | backward-char |
前の文字に移動 |
| C-d, delete | delete-region-or delete-forward-char |
現在の選択範囲または次の文字を削除 |
| C-?, DEL, C-h, BS | delete-region-or delete-backward-char |
現在の選択範囲または前の文字を削除 |
| C-t | transpose-chars |
文字の交換 |
| C-] (Emacs) | character-search-forward |
前方に文字を検索 |
| M-C-] (Emacs) | character-search-backward |
後方に文字を検索 |
ble.sh には5種類の単語があります。
eword はアルファベット・数字からなる英単語です。
cword は C の単語で、アルファベット・数字・アンダースコアからなる文字列です。
uword は Unix 単語で、シェル変数 IFS に含まれる文字 (または空白類) で区切られる文字列です。
sword はシェル単語で、空白類またはシェルの特殊文字で区切られる文字列です。
fword はファイル名で、シェル変数 IFS に含まれる文字 (または空白類) またはスラッシュ / で区切られる文字列です。
以下は既定で割り当てられている cword 単位の操作です。
| 操作 | 編集関数 | 説明 |
|---|---|---|
|
C-right M-f (Emacs) |
forward-cword |
次の cword の先頭に移動 |
|
C-left M-b (Emacs) |
backward-cword |
前の cword の末尾に移動 |
| M-d (Emacs) | kill-forward-cword |
次の cword を切り取り |
| M-h (Emacs) | kill-backward-cword |
前の cword を切り取り |
| C-delete | delete-forward-cword |
次の cword を削除 |
| C-_, C-DEL, C-BS | delete-backward-cword |
前の cword を削除 |
以下は既定で割り当てられている sword 単位の操作です。
| 操作 | 編集関数 | 説明 |
|---|---|---|
| M-right (Emacs) | forward-sword |
次の sword の先頭に移動 |
| M-left (Emacs) | backward-sword |
前の sword の末尾に移動 |
| M-delete (Emacs) | copy-forward-sword |
前の sword をコピー |
| M-C-?, M-DEL, M-C-h, M-BS (Emacs) | copy-backward-sword |
前の sword をコピー |
以下は eword 単位の操作です。
| 操作 | 編集関数 | 説明 |
|---|---|---|
| M-c (Emacs) | capitalize-eword |
次の eword 末尾までをキャピタライズします。 |
| M-l (Emacs) | downcase-eword |
次の eword 末尾までを小文字にします。 |
| M-u (Emacs) | upcase-eword |
次の eword 末尾までを大文字にします。 |
他に空白に対する操作もあります。
| 操作 | 編集関数 | 説明 |
|---|---|---|
| M-\ (Emacs) | delete-horizontal-space |
現在位置の周りの空白を全て削除 |
| 操作 | 編集関数 | 説明 |
|---|---|---|
| C-a, home | beginning-of-line |
行頭に移動 |
| C-e, end | end-of-line |
行末に移動 |
| M-m (Emacs) | non-space-beginning-of-line |
非空白行頭に移動 |
| C-k | kill-forward-line |
現在位置から行末までを削除 |
| C-u | kill-backward-line |
現在位置から行頭までを削除 |
| 操作 | 編集関数 | 説明 |
|---|---|---|
| C-home | beginning-of-text |
編集文字列の先頭に移動 |
| C-end | end-of-text |
編集文字列の末尾に移動 |
シフト修飾キー S- を押したまま移動コマンドを実行することによって範囲選択をすることもできます。 通常の範囲選択と同様の操作でコピー・切り取り・貼り付けなどができます。
| 操作 | 編集関数 | 説明 |
|---|---|---|
| S-C-f, S-right | @marked forward-char |
選択しつつ次の文字へ移動 |
| S-C-b, S-left | @marked backward-char |
選択しつつ前の文字へ移動 |
|
S-C-right M-S-f, M-F (Emacs) |
@marked forward-cword |
選択しつつ次の cword の先頭に移動 |
|
S-C-left M-S-b, M-B (Emacs) |
@marked backward-cword |
選択しつつ前の cword の末尾に移動 |
| M-S-right (Emacs) | @marked forward-sword |
選択しつつ次の sword の先頭に移動 |
| M-S-left (Emacs) | @marked backward-sword |
選択しつつ前の sword の末尾に移動 |
| S-C-a, S-home | @marked beginning-of-line |
選択しつつ行頭に移動 |
| S-C-e, S-end | @marked end-of-line |
選択しつつ行末に移動 |
| M-S-m, M-M (Emacs) | @marked non-space-beginning-of-line |
選択しつつ非空白行頭に移動 |
| S-C-p, S-up | @marked backward-line |
選択しつつ前の行に移動 |
| S-C-n, S-down | @marked forward-line |
選択しつつ次の行に移動 |
| S-C-home | @marked beginning-of-text |
選択しつつ編集文字列の先頭に移動 |
| S-C-end | @marked end-of-text |
選択しつつ編集文字列の末尾に移動 |
上記の何れかのキーを押すと選択を開始すると共に選択モードに入ります。 選択モードでは、以下のように、選択開始に用いるとの同じキー束縛が利用できます。
| 操作 | 編集関数 | 説明 |
|---|---|---|
| S-C-f, S-right | forward-char |
選択を保持したまま次の文字へ移動 |
| S-C-b, S-left | backward-char |
選択を保持したまま前の文字へ移動 |
|
S-C-right M-S-f, M-F |
forward-cword |
選択を保持したまま次の cword の先頭に移動 |
|
S-C-left M-S-b, M-B |
backward-cword |
選択を保持したまま前の cword の末尾に移動 |
| M-S-right | forward-sword |
選択を保持したまま次の sword の先頭に移動 |
| M-S-left | backward-sword |
選択を保持したまま前の sword の末尾に移動 |
| S-C-a, S-home | beginning-of-line |
選択を保持したまま行頭に移動 |
| S-C-e, S-end | end-of-line |
選択を保持したまま行末に移動 |
| M-S-m, M-M | non-space-beginning-of-line |
選択を保持したまま非空白行頭に移動 |
| S-C-p, S-up | backward-line |
選択を保持したまま前の行に移動 |
| S-C-n, S-down | forward-line |
選択を保持したまま次の行に移動 |
| S-C-home | beginning-of-text |
選択を保持したまま編集文字列の先頭に移動 |
| S-C-end | end-of-text |
選択を保持したまま編集文字列の末尾に移動 |
| 操作 | 編集関数 | 説明 |
|---|---|---|
| C-x ( | start-keyboard-macro |
マクロ記録の開始 |
| C-x ) | end-keyboard-macro |
マクロ記録の終了 |
| C-x e | call-keyboard-macro |
マクロの再生 |
| C-x P | print-keyboard-macro |
マクロの表示 |
| 操作 | 編集関数 | 説明 |
|---|---|---|
|
C-prior M-< (Emacs) |
history-beginning |
最初の履歴項目に移動 |
|
C-next M-> (Emacs) |
history-end |
最後の履歴項目に移動 |
| C-p, up | backward-line history |
前の行または前の履歴項目に移動 |
| C-n, down | forward-line history |
次の行または次の履歴項目に移動 |
| C-up | history-prev |
前の履歴項目に移動 |
| C-down | history-next |
次の履歴項目に移動 |
逐次検索の開始操作は以下の通りです。
| 操作 | 編集関数 | 説明 |
|---|---|---|
| C-r | history-isearch-backward |
前方に逐次検索を開始 |
| C-s | history-isearch-forward |
後方に逐次検索を開始 |
逐次検索中の操作は以下の通りです。
| 操作 | 編集関数 | 説明 |
|---|---|---|
| __defchar__ | isearch/self-insert |
検索文字列に追記 |
| C-r | isearch/backward |
前方に検索 |
| C-s | isearch/forward |
後方に検索 |
| C-?, DEL, C-h, BS | isearch/prev |
一つ前の検索状態に戻す |
| __default__ | isearch/exit-default |
検索を抜けて既定の動作を実行 |
| C-g | isearch/cancel |
キャンセルし検索前の状態に復元 |
| C-m, RET | isearch/exit |
検索を確定し検索を終了 |
| C-j, C-RET | isearch/accept-line |
検索を抜けて RET 実行 |
| C-d | isearch/exit-delete-forward-char |
検索を抜けて削除 |
非逐次検索の開始操作は以下の通りです。
| 操作 | 編集関数 | 説明 |
|---|---|---|
| prior, C-x C-p, C-x up | history-search-backward |
現在位置以前の文字列を前方に非逐次検索(先頭一致) |
| next, C-x C-n, C-x down | history-search-forward |
現在位置以前の文字列を後方に非逐次検索(先頭一致) |
| C-x p | history-substring-search-backward |
現在位置以前の文字列を前方に非逐次検索(部分一致) |
| C-x n | history-substring-search-forward |
現在位置以前の文字列を後方に非逐次検索(部分一致) |
| C-x < | history-nsearch-backward |
ユーザ入力を取り前方に非逐次検索(先頭一致) |
| C-x > | history-nsearch-forward |
ユーザ入力を取り後方に非逐次検索(先頭一致) |
非逐次検索中の操作は以下の通りです。
| 操作 | 編集関数 | 説明 |
|---|---|---|
| C-r, C-p, up | nsearch/backward |
前方に検索 |
| C-s, C-n, down | nsearch/forward |
後方に検索 |
| C-g | nsearch/cancel |
キャンセル |
| C-m, RET | nsearch/exit |
確定 |
| C-j, C-RET | nsearch/accept-line |
確定して RET を実行 |
| __default__ | nsearch/exit-default |
確定して規定の動作を実行 |
4.11.1 編集関数 history-search†
概要
history-search OPTS
history-search-backward OPTS
history-search-forward OPTS
history-substring-search-backward OPTS
history-substring-search-forward OPTS
history-nsearch-backward OPTS
history-nsearch-forward OPTS
history-nsearch-backward-again OPTS
history-nsearch-forward-again OPTS
OPTS はコロン区切りのリスト
backward, forward, substr, input, again, hide-status, immediate-accept
action=ACTION, point=POINT, empty=EMPTY
ACTION
goto, load, load-line, load-command, insert, insert-line
POINT
begin, end, match-begin, match-end
EMPTY
empty-search, previous-search, hide-status, history-move
-
history-search-forward OPTSはhistory-search forward:OPTSの別名です。 -
history-search-backward OPTSはhistory-search backward:OPTSの別名です。 -
history-substring-search-forward OPTSはhistory-search forward:substr:OPTSの別名です。 -
history-substring-search-backward OPTSはhistory-search backward:substr:OPTSの別名です。 -
history-nsearch-forward OPTSはhistory-search forward:input:OPTSの別名です。 -
history-nsearch-backward OPTSはhistory-search backward:input:OPTSの別名です。 -
history-nsearch-forward-again OPTSはhistory-search forward:again:OPTSの別名です。 -
history-nsearch-backward-again OPTSはhistory-search backward:again:OPTSの別名です。
目標文字列をコマンド履歴から検索します。
既定では、コマンドライン中のカーソルより前にある文字列が目標文字列と解釈されます。
引数に input / again オプション (後述) を指定して、ユーザーに目標文字列を入力させる事も可能です。
既定では、目標文字列から始まるコマンドを検索します。
引数に substr オプション (後述) を指定して、目標文字列を含むコマンドを検索する事も可能です。
OPTS は以下の値を含むコロン区切りのリストです。
-
backward(既定) ... 前方に検索を開始します (より新しい履歴項目を検索します)。 -
forward... 後方に検索を開始します (より古い履歴項目を検索します)。 -
substr... (目標文字列から始まる履歴項目の代わりに) 目標文字列を含む履歴項目を探します。 -
input... 目標文字列をユーザーに対話的に入力させます。 -
again... 前回ユーザーが対話的に入力した目標文字列を再利用します。 -
hide-status... ((nsearch #N: << !M >>) `NEEDLE'の形式の)nsearch状態表示を行いません。 -
immediate-accept... (nsearch モード中で C-m または RET を押した時に既定で呼び出される) 編集関数nsearch/exitに際して、単に nsearch を完了するだけでなく、即座にコマンドを実行します。 -
action=ACTION... 目標文字列が見つかった時の動作を指定します。ACTIONには以下の値の何れかを指定します。-
goto(既定) ... 該当する履歴項目に移動します。 -
load... 現在の履歴位置を移動せずに、該当する履歴項目の内容を現在履歴位置にコピーします。Bash の非逐次検索と同様の動作です。 -
load-line... 現在の行を該当する履歴項目の内容で置き換えます。 -
load-command... 文法に基づくコマンドを該当する履歴項目の内容をで置き換えます。 -
insert... 現在位置に該当する履歴項目の内容を挿入します。 -
insert-line... 現在位置に該当する履歴項目の内容を新しい行として挿入します。
-
-
point=POINT... 目標文字列が見つかった後のカーソル位置を指定します。POINTには以下の値の何れかを指定します。-
begin... コマンドラインの先頭 -
end... コマンドラインの末尾 -
match-begin... 一致範囲の先頭 -
match-end(既定) ... 一致範囲の末尾
-
-
empty=EMPTY... 目標文字列が空の時の動作を指定します。-
empty-search(default) ... 空文字列を検索します。 -
hide-status... 空文字列を検索しますが、nsearch 状態表示を隠します。 -
previous-search... 前回の目標文字列を使って検索を開始します。 -
history-move... 検索は開始せず単に次または前の履歴項目に移動します。 カーソルより前にある文字列が空文字列であり続ける為に、カーソル位置はコマンドライン先頭に移動します。 -
emulate-readline... Readline の振る舞いを模倣します (hide-status:immediate-accept:point=end)。
-
| 操作 | 編集関数 | 説明 |
|---|---|---|
| M-., M-_ (Emacs) | insert-last-argument |
前のコマンドの最後の引数を挿入 |
| C-M-y (Emacs) | insert-nth-argument |
前のコマンドのN番目[最初]の引数を挿入 |
insert-last-argument を実行すると単語挿入 (keymap lastarg) モードに入ります。単語挿入モードでは以下の操作を使用できます。
| 操作 | 編集関数 | 説明 |
|---|---|---|
| __default__ | lastarg/exit-default |
単語挿入を抜けて既定の動作を実行 |
|
C-g, C-x C-g, C-M-g (Emacs) |
lastarg/cancel |
挿入単語を削除して単語挿入を抜ける |
| M-., M-_ (Emacs) | lastarg/next |
N[1]個前の履歴項目の最後の引数に移動 |
| M-C-u | universal-arg |
引数入力の開始・終了 |
| M--, M-0, M-1, M-2, M-3, M-4, M-5, M-6, M-7, M-8, M-9 (Emacs) | append-arg-or lastarg/exit-default |
引数の指定 |
| C--, C-0, C-1, C-2, C-3, C-4, C-5, C-6, C-7, C-8, C-9 | append-arg-or lastarg/exit-default |
引数の指定 |
| -, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 (Emacs) | append-arg-or lastarg/exit-default |
引数の指定 |
ble.sh では PS1, PS2, PS0, bleopt prompt_rps1, read -p 等様々な場所で "プロンプト文字列" を指定できます。
通常の Bash の \... の形のエスケープシーケンス (プロンプトシーケンス) に加えて幾つかの拡張もされています。
描画属性を gspec 形式または ble-face face=[TYPE:]SPEC で用いられる形式で直観的に指定することができます。
TYPE として ble-face に指定できる物の他に copy と同義の face を使うことができます。
# 例
PS1='[\g{bold,fg=green}\u\g{none}@\g{bold,fg=navy}\h\g{none}]\$ 'function ble/prompt/backslash:X {
ble/prompt/print STRING
ble/prompt/process-prompt-string PROMPT_STRING
ble/prmopt/unit/add-hash '$VARNAME'
}
PS1='[\X]\$ 'プロンプト文字列には Bash で定義されているプロンプトシーケンスに加えて、ユーザ定義のシーケンスも追加できます。
シェル関数 ble/prompt/backslash:X を定義すると \X というシーケンスをプロンプト文字列で使う事ができるようになります。
シェル関数の中では ble/prompt/print STRING または ble/prompt/process-prompt-string PROMPT_STRING
を用いてプロンプトに挿入する文字列を追記します。前者は引数をそのまま文字列として挿入します。
後者は引数に含まれるプロンプトシーケンスやシェル展開を処理の対象とします。
また、ble/prompt/unit/add-hash '$VARNAME' を指定する事で任意の変数に対する依存性を宣言する事ができます。
変数の内容に変更があった場合にプロンプトを自動的に再更新します。
またプロンプトシーケンス \q{NAME ARGS...} (v0.4) を用いれば
名前付きプロンプトシーケンスを引数付きで呼び出す事ができます。
名前付きプロンプトシーケンスは、シェル関数 ble/prompt/backslash:NAME ARGS... を呼び出す事によって処理されます。
# 例: ユーザ定義シーケンス hello を定義して呼び出す
function ble/prompt/print {
ble/prompt/process-prompt-string "Hello, ${1:-world}!"
}
PS1='[\q{hello $USER}]\$ '4.13.3 プロンプトシーケンス \q{row} (v0.4)†
コマンドライン内における現在の行番号に展開されます。
\q{row} # 展開例: 1
4.13.4 プロンプトシーケンス \q{column} (v0.4)†
コマンドライン内における現在の列番号に展開されます。
\q{column} # 展開例: 5
4.13.5 プロンプトシーケンス \q{position} (v0.4)†
コマンドライン内における現在の行番号と列番号に展開されます。第一引数にprintf書式を指定できます。
\q{position} # 展開例: (1,5)
\q{position %s行%s列} # 展開例: 1行5列
4.13.6 プロンプトシーケンス \q{point} (v0.4)†
コマンドライン文字列内における現在位置のオフセットに展開されます。
\q{point} # 展開例: 3
4.13.7 プロンプトシーケンス \q{mark} (v0.4)†
コマンドライン文字列内におけるマーク位置のオフセットに展開されます。
\q{mark} # 展開例: 0
4.13.8 プロンプトシーケンス \q{history-index} (v0.4)†
コマンド履歴内における現在位置の履歴番号に展開されます。
\q{history-index} # 展開例: 0
4.13.9 プロンプトシーケンス \q{history-percentile} (v0.4)†
コマンド履歴内における現在位置を表す百分率に展開されます。
\q{history-percentile} # 展開例: 100%
PS1, PS2 や PS0 などの Bash の標準的なプロンプトに加えて、ble.sh ではこの節で挙げている様々なプロンプトを利用できます。
以下の編集モード固有のプロンプトもご参照ください。
4.14.1 設定変数 prompt_rps1 (プロンプト文字列) (v0.3)†
# 既定値
bleopt prompt_rps1= # ble-0.4
bleopt rps1= # ble-0.3 (互換性 obsolete)右プロンプトを指定します。
# 時刻を表示する設定例
bleopt prompt_rps1='\t'4.14.2 設定変数 prompt_ps1_final (プロンプト文字列) (v0.4)†
# 既定値
bleopt prompt_ps1_final=非空文字列が設定されている時、 新しい行に移動する直前にプロンプトの内容をこの値に置き換えます。
4.14.3 設定変数 prompt_ps1_transient (空/コロン区切りリスト) (v0.4)†
# 既定値
bleopt prompt_ps1_transient=always, same-dir, trim のコロン区切りリストです。
prompt_ps1_final が空でかつこの設定に非空文字列が設定されている場合、
新しい行に移動する時に PS1 によって表示されたプロンプトを消去します。
値に trim が入っている時、複数行 PS1 の最後の行だけが残されて他は削除されます。
それ以外の場合は恰も PS1= のようにコマンドラインを再描画します。
値に same-dir が含まれていてかつ現在のディレクトリが前回のコマンドラインのディレクトリと異なる時、
この設定変数は無視されます。
4.14.4 設定変数 prompt_rps1_final (プロンプト文字列) (v0.4)†
# 既定値
bleopt prompt_rps1_final=非空文字列が設定されている時、 新しい行に移動する直前に右プロンプトの内容をこの値に置き換えます。
4.14.5 設定変数 prompt_rps1_transient (空/非空) (v0.3)†
# 既定値
bleopt prompt_rps1_transient= # ble-0.4
bleopt rps1_transient= # ble-0.3 (互換性 obsolete)prompt_rps1_final が空でかつ非空文字列が設定されている場合、
新しい行に移動する時に設定変数 prompt_rps1 によって表示されている右プロンプトを消去します。
4.14.6 設定変数 prompt_xterm_title (プロンプト文字列) (v0.4)†
# 既定値
bleopt prompt_xterm_title=非空文字列が設定されている時、PS1 の表示直前に
OSC 0 ; ... BEL を用いて端末のタイトルを指定した内容に設定します。
4.14.7 設定変数 prompt_screen_title (プロンプト文字列) (v0.4)†
# 既定値
bleopt prompt_screen_title=GNU screen や tmux などの端末マルチプレクサの内部で動作している時に有効です。
非空文字列が設定されている時、PS1 の表示直前に
ESC k ... ST を用いて端末マルチプレクサのウィンドウタイトルを指定した内容に設定します。
4.14.8 設定変数 prompt_term_status (プロンプト文字列) (v0.4)†
# 既定値
bleopt prompt_term_status=terminfo tsl (termcap ts) と terminfo fsl (termcap ds) が登録されている時に有効です。
非空文字列が設定されている時、PS1 の表示直前に
ステータス行を指定した内容に設定します。
4.14.9 設定変数 prompt_status_line (プロンプト文字列) (v0.4)†
# 既定値
bleopt prompt_status_line=端末の最下行に表示するステータス行の内容を指定します。 プロンプト文字列として評価した結果として空文字列になった場合には、ステータス行は無効化されます。
ステータス内の文字列配置および背景スタイルの制御については、以下の二つの設定 (bleopt prompt_status_align と ble-face prompt_status_line) もご参照ください。
4.14.10 設定変数 prompt_status_align (列挙) (v0.4)†
# 既定値
bleopt prompt_status_align=$'justify=\r'ステータス行の内容の表示位置を指定します。
left, right, center, justify=CHAR の何れかの値を指定する事ができます。
justify=CHAR (CHAR はユーザー指定の文字) を指定した時は、
プロンプト展開の結果を文字 CHAR で分割して両端を揃えるように行内で配置します。
4.14.11 描画設定 prompt_status_line (v0.4)†
# 既定値
ble-face prompt_status_line='fg=231,bg=240'ステータス行の背景の描画属性を指定します。
4.15.1 設定変数 indent_offset (算術式) (v0.2)†
# 既定値
bleopt indent_offset=4インデントの幅を指定します。
4.15.2 設定変数 indent_tabs (算術式) (v0.2)†
# 既定値
bleopt indent_tabs=1インデントにタブ文字を使用するかどうかを指定します。 0 を指定した時に空白のみでインデントします。 それ以外の時にインデントにタブ文字を使用します。
4.15.3 設定変数 edit_forced_textmap (算術式) (v0.2)†
# 既定値
bleopt edit_forced_textmap=1移動操作 (up, down) などにおいて、 必ず文字の配置を考慮した操作を行う事を指定します。 0 を指定した時は、文字の配置情報が最新の時にのみ配置情報を利用します。 それ以外の時、文字の配置情報が最新でなければ文字の配置情報を更新して利用します。
4.15.4 設定変数 edit_line_type (列挙) (v0.4)†
# 既定値
bleopt edit_line_type=logical行頭・行末への移動などの操作を行う時の行の解釈を制御します。
logical が設定されている時、論理行で解釈します。
つまり編集文字列内の改行文字で区切られた行頭・行末を使用して操作を行います。
graphical が設定されている時、表示行で解釈します。
つまり端末内での現在行の行頭・行末を使用して操作を行います。
4.15.5 設定変数 edit_magic_expand (コロン区切りのリスト) (v0.4)†
# 既定値
bleopt edit_magic_expand=history:sabbrevmagic-space で行う展開の種類をコロン区切りのリストで指定します。
値として history・sabbrev・alias・autocd を指定できます。
4.15.6 設定変数 edit_magic_opts (コロン区切りのリスト) (v0.4)†
# 既定値
bleopt edit_magic_opts=編集関数 magic-space の振る舞いをコロン区切りのリストで調整します。
inline-sabbrev-no-insert を指定すると、行われた展開がインライン略語展開 (inline sabbrev)の時に SP の挿入が省略されます。
4.15.7 設定変数 edit_magic_accept (Colon-separated list) (v0.4)†
# 既定値
bleopt edit_magic_accept=verify-syntaxaccept-line の際に実行される展開をコロン区切りのリストで指定します。展開は
Bashの標準の履歴展開と同様に行われます。値 sabbrev・alias・autocd・
history が指定されている時、それぞれ静的略語展開・エイリアス展開・autocd展
開・履歴展開が実行しようとしているコマンド文字列に対して適用されます。history
による履歴展開は、シェルのset -H による履歴展開と同一の物です。値 verify が
指定されている時、静的略語展開・エイリアス展開・autocd展開が実際にコマンド文
字列を変化させた時に、ユーザーが展開結果を確認または続けて編集できるように、コ
マンド実行を一旦中断します。履歴展開については shopt -s histverify を用いて同
様に制御できます。値 verify-syntax が指定されている時、展開がコマンド文字列を
変化させた場合に文法チェックを行います。文法的に間違っている場合、コマンド実行
をキャンセルします。値 history-line が指定されている時、履歴展開は単に展開結
果を出力するのではなく、他の展開と同様に実際にコマンドラインを置き換えます。
4.15.8 設定変数 delete_selection_mode (空/非空) (v0.2)†
# 既定値
bleopt delete_selection_mode=1非空文字列が設定されている場合、 選択範囲がある時に文字挿入で選択範囲の文字列を削除してから文字を挿入します。 空文字列が設定されている場合、選択範囲を解除してから現在位置に文字を挿入します。
4.15.9 設定変数 undo_point (列挙) (v0.2)†
# 既定値
bleopt undo_point=auto # ble >= 0.4
bleopt undo_point=end # ble <= 0.3undo が実行された直後のカーソル位置を指定します。
end が指定された場合、変更範囲の末端にカーソルを移動します。
beg が指定された場合、変更範囲の先頭にカーソルを移動します。
first または last が指定された場合、undo/redo 実行後の文字列を最初または最後に記録した位置にカーソルを移動します。
near が指定された場合、undo 時には last のように、redo 時には first のように振る舞います。
それ以外の場合、vi コマンドモードでは beg のように振る舞い、それ以外のモードでは near のように振る舞います。
# 既定値
bleopt history_default_point=end # ble >= 0.4
bleopt history_preserve_point= # ble <= 0.3 (廃止)履歴移動 (既定の up や down など) を行った後のカーソル位置を指定します。 指定できる値とカーソル位置は以下の表を御覧ください。
| 値 | 昔の履歴項目に遡った時 | 新しい履歴項目に下った時 |
|---|---|---|
preserve |
移動前と同じ位置 | 移動前と同じ位置 |
begin |
文字列の先頭 | 文字列の先頭 |
end (既定値) |
文字列の末端 | 文字列の末端 |
near |
文字列の末端 | 文字列の先頭 |
far |
文字列の先頭 | 文字列の末端 |
end-of-line |
最終行の末端 | 最初の行の末端 |
end-of-logical-line |
最終論理行の末端 | 最初の論理行の末端 |
end-of-graphical-line |
最終表示行の末端 | 最初の表示行の末端 |
beginning-of-line |
最終行の先頭 | 最初の行の先頭 |
beginning-of-logical-line |
最終論理行の先頭 | 最初の論理行の先頭 |
beginning-of-graphical-line |
最終表示行の先頭 | 最初の表示行の先頭 |
preserve-column |
最終行の同じ列 | 最初の行の同じ列 |
preserve-logical-column |
最終論理行の同じ列 | 最初の論理行の同じ列 |
preserve-graphical-column |
最終表示行の同じ列 | 最初の表示行の同じ列 |
auto |
end と同様 |
end と同様 |
preserve を指定した場合、できるだけ移動前のカーソル位置を保持します。移動後の
文字列が移動前のカーソル位置よりも短い時は、移動後の文字列の末尾に移動します。
論理行は文字列中の改行文字で区切られた行を意味します。表示行は端末内での表示行
を意味します。
Note
この設定は既定の振る舞いを定義するものであり、実際の振る舞いは編集関数によっ
て異なります。例えば、履歴移動が行移動の結果として引き起こされた場合には、実
際の振る舞いは行指向のものに変換されます。また、vi motion の一環で履歴移動が
起こる場合は auto は near に類似の振る舞いになります。
4.15.11 設定変数 term_cursor_external (算術式) (v0.2)†
# 既定値
bleopt term_cursor_external=0外部コマンドを実行する時のカーソルの形状を DECSCUSR の引数として設定します。
terminfo (または termcap) に Ss が登録されている時に有効です。
terminfo に登録されていない場合でも端末が DECSCUSR に対応している場合には、
blerc に以下を記述して下さい。
_ble_term_Ss=$'\e[@1 q'4.15.12 設定変数 term_stty_restore (空/非空) (v0.4)†
# 既定値
bleopt term_stty_restore=非空文字列を設定した時に TTY 状態の復元が有効になります。この設定を有効が有効の
時、ble.sh はコマンド終了時の TTY 状態を保存し次のコマンド開始前に TTY 状態を
復元します。この設定を有効にした場合、stty コマンドを余分に実行するためのオー
バーヘッドが生じます。
Warning
この設定を有効にしていると、直前のコマンドが TTY 状態を破壊した場合、その影響が後 続のコマンドにも残ります。
この設定を ~/.blerc または ~/.bashrc で有効化する時、PROMPT_COMMAND な
どの行エディタ内部状態で source -- ~/.bashrc や ble-update や
ble-reloadなどを実行すると問題が置きます。これは ble.sh が
term_stty_restore を設定した時点での TTY 状態を初期の外部TTY状態として使用
するためです。もし source -- ~/.bashrc や ble-update や ble-reload が内
部状態で実行されると、その時のTTY 状態が初期の TTY 外部状態として使われること
になります。
4.15.13 設定変数 allow_exit_with_jobs (空/非空) (v0.3)†
# 既定値
bleopt allow_exit_with_jobs=空文字列が設定されている場合、ジョブが残っている場合には
delete-forward-char-or-exit (既定 C-d) でシェルを終了しません。
非空文字列が設定されている場合、ジョブが残っている場合でもシェルを終了します。
4.15.14 設定変数 prompt_eol_mark (ANSI制御シーケンス) (v0.3)†
# 既定値
bleopt prompt_eol_mark=$'\e[94m[ble: EOF]\e[m'コマンドが行頭で終了しなかった時に表示する文字列を指定します。
4.15.15 設定変数 prompt_ruler (空/列挙/ANSI制御シーケンス) (v0.4)†
# 既定値
bleopt prompt_ruler=powerlevel10k の POWERLEVEL9K_PROMPT_{ADD_NEWLINE,SHOW_RULER,RULER_*} の様に、前のコマンドとプロンプトの間に表示する分割行の設定を指定します。
空文字列が設定されている時、分割行は無効です。これが既定値です。
値 empty-line が設定されている時、空行が挿入されます。
その他の値が指定されている時、それは ANSI制御シーケンスとして解釈され、行を埋めるのに繰り返し使用されます。
4.15.16 設定変数 prompt_command_changes_layout (空/非空) (v0.4)†
# 既定値
bleopt prompt_command_changes_layout=PRECMD フックまたは PROMPT_COMMAND 配列に指定されたコマンドが端末に文字列を出力してレイアウトを変更するかどうかを指定します。
非空文字列が指定されている時、ble.sh は現在のレイアウトを初期化してから PRECMD 及び PROMPT_COMMAND を実行しその後で再び端末のレイアウトを復元します。
空文字列が指定されている時、ble.sh はレイアウトの調整を行わず直接 PRECMD 及び PROMPT_COMMAND を実行します。
4.15.17 設定変数 exec_restore_pipestatus (空/非空) (v0.4)†
# 既定値
bleopt exec_restore_pipestatus=
# PIPESTATUS を復元
bleopt exec_restore_pipestatus=1非空文字列が設定されている時、ble.sh は次のユーザーコマンドを実行する直前に前回のユーザーコマンド実行後の PIPESTATUS を復元します。
余分な実行コストがかかるため、既定ではこの機能はオフになっています。
同じ情報はこの設定にかかわらず BLE_PIPESTATUS 配列を通して常に参照可能です。
4.15.18 設定変数 edit_marker (ANSI制御シーケンス) (v0.4)†
# 既定値
bleopt edit_marker=$'\e[94m[ble: %s]\e[m'ble.sh が通常の通知に用いるマーカー ([ble: ...] など) の既定のスタイルを指定します。
空文字列が指定されている時、(マーカーに続いて追加情報が表示される場合を除き) マーカーは無効化されます。
既定のスタイルは exec_elapsed_mark や exec_exit_mark などの設定によって個別に上書きされます。
4.15.19 設定変数 edit_marker_error (ANSI制御シーケンス) (v0.4)†
# 既定値
bleopt edit_marker_error=$'\e[91m[ble: %s]\e[m'ble.sh が通常の通知に用いるマーカー ([ble: ...] など) の既定のスタイルを指定します。
空文字列が指定されている時、(マーカーに続いて追加情報が表示される場合を除き) マーカーは無効化されます。
既定のスタイルは exec_errexit_mark などの設定によって個別に上書きされます。
4.15.20 設定変数 exec_errexit_mark (ANSI制御シーケンス) (v0.4)†
# 既定値
bleopt exec_errexit_mark=$'\e[91m[ble: exit %d]\e[m'コマンドの終了ステータスが非零の時に表示する文字列を指定します。 この設定が空文字列の時、終了ステータスの表示は行いません。
4.15.21 設定変数 exec_elapsed_mark (ANSI制御シーケンス) (v0.4)†
# 既定値
bleopt exec_elapsed_mark=$'\e[94m[ble: elapsed %s (CPU %s%%)]\e[m'コマンド実行時間の統計を表示する際の書式を指定します。 この書式に対して二つの引数が指定されます。一つ目は経過時間を表す文字列です。二つ目はCPU使用率を表す数です。
4.15.22 設定変数 exec_elapsed_enabled (算術式) (v0.4)†
# 既定値
bleopt exec_elapsed_enabled='usr+sys>=10000'コマンド実行時間の統計を表示する条件を算術式で指定します。評価結果が非零の時に統計が表示されます。
算術式の内部では変数 real, {usr,sys}{,_self,_child}, cpu を参照できます。
real は実際の経過時間を表します。
usr と sys はそれぞれ消費したユーザー時間及びシステム時間表します。
その内、メインのシェルおよび子プロセスで消費された時間は接尾辞 _self と _child によって参照できます。
cpu は CPU 使用率を百分率(整数)で表します。(usr+sys)*100/real で計算される値です。
その他の時間変数はすべてミリ秒単位です。
4.15.23 設定変数 exec_exit_mark (ANSI制御シーケンス) (v0.4)†
# 既定値
bleopt exec_exit_mark=$'\e[94m[ble: exit]\e[m'シェルセッションが終了する時に出力する文字列を指定します。
4.15.24 設定変数 history_share (空/非空) (v0.4)†
# 既定値
bleopt history_share=非空文字列が設定されている時、コマンドが実行される度に $HISTFILE と履歴の同期を行います。
4.15.25 設定変数 info_display (列挙) (v0.4)†
# 既定値
bleopt info_display=top情報ペイン (補完候補一覧、モード名などの表示領域) の表示位置を制御します。
top が指定されている時、情報ペインは編集文字列の直下に表示されます。
bottom が指定されている時、情報ペインは端末の最下部に表示されます。
4.15.26 設定変数 accept_line_threshold (算術式) (v0.4)†
# 既定値
bleopt accept_line_threshold=5編集関数 accept-single-line-or-newline の単一行モードにおける振る舞いを制御します。
負の整数に評価された時、常にコマンドを実行します。
0 に評価された時、ユーザの入力がある場合は改行を挿入して複数行モードに入ります。
正の整数 n の時、未処理のユーザ入力が n 以上の時に改行を挿入して複数行モードに入ります。
4.15.27 設定変数 line_limit_type (列挙) (v0.4)†
# 既定値
bleopt line_limit_type=noneコマンドライン中の文字数が line_limit_length で指定した容量を超過した時の振る舞いを指定します。
値 none は超過チェックを実施しない事を示します。
値 discard は超過して挿入しようとした文字列を破棄することを示します。
値 truncate は超過した分だけ編集文字列の末尾から削除することを示します。
値 editor は文字を挿入した後に編集関数 edit-and-execute によりエディタを起動して編集する事を示します。
Note
値 editor を指定する場合は設定 bleopt history_limit_length は bleopt line_limit_length 以下にすることが推奨されます。
これは、長い履歴項目によって履歴移動中にエディタが起動するのを防ぐためです。
4.15.28 設定変数 line_limit_length (算術式) (v0.4)†
# 既定値
bleopt line_limit_length=10000コマンドライン文字数の上限を指定します。 0以下の値は文字数に制限を与えない事を示します。
4.15.29 設定変数 history_limit_length (算術式) (v0.4)†
# 既定値
bleopt history_limit_length=10000履歴に登録するコマンドの最大文字数を指定します。 正の値を持つ時、この値を超える長さのコマンドは履歴に登録されません。 0以下の値に評価される時は、コマンドの長さに拘らず履歴に登録が為されます。
4.15.30 設定変数 history_erasedups_limit (空/算術式) (v0.4)†
# 既定値
bleopt history_erasedups_limit=0erasedups の操作 (HISTCONTROL に指定されている時に実行される) の際の、コマンド履歴内の対象範囲を制限します。
空文字列が指定されている時は、plain Bash の時と同様にコマンド履歴全体が erasedups の対象範囲です。
算術式として正の整数 count に評価された時は、対象範囲はコマンド履歴の末尾 count 項目となります。
0以下の整数 offset に評価された時は、offset は対象範囲の開始位置を〈ble.sh 開始後に追加された最初の履歴項目からの相対位置〉で指定します。
対象範囲の終端点は常にコマンド履歴の終端です。
[ 日本語 | English ] ≫ 説明書 [§1 基本 | §2 描画 | §3 束縛 | §4 編集 | §5 Emacs | §6 Vim | §7 補完 | §8 他 | 索引]