-
-
Notifications
You must be signed in to change notification settings - Fork 86
説明書 §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-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
... 検索は開始せず単に次または前の履歴項目に移動します。 カーソルより前にある文字列が空文字列であり続ける為に、カーソル位置はコマンドライン先頭に移動します。
-
操作 | 編集関数 | 説明 |
---|---|---|
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:sabbrev
magic-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-syntax
accept-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=end
undo
が実行された直後のカーソル位置を指定します。
end
を指定した場合、変更範囲の末端にカーソルを移動します。
beg
を指定した場合、変更範囲の先頭にカーソルを移動します。
それ以外の場合、状態が記録された時のカーソル位置を復元します。
4.15.10 設定変数 history_preserve_point
(空/非空)†
# 既定値
bleopt history_preserve_point=
履歴移動 (既定の up や down など) を行った後のカーソル位置を指定します。 非空文字列が設定されている場合、できるだけ移動前のカーソル位置を保持します。 移動後の文字列が移動前のカーソル位置よりも短い時は、移動後の文字列の末尾に移動します。 空文字列が設定されている場合、 履歴移動でより昔の履歴に遡った時は最終行の行末に、 より最近の履歴に下った時は最初の行の行末に移動します。
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=0
erasedups
の操作 (HISTCONTROL
に指定されている時に実行される) の際の、コマンド履歴内の対象範囲を制限します。
空文字列が指定されている時は、plain Bash の時と同様にコマンド履歴全体が erasedups
の対象範囲です。
算術式として正の整数 count
に評価された時は、対象範囲はコマンド履歴の末尾 count
項目となります。
0以下の整数 offset
に評価された時は、offset
は対象範囲の開始位置を〈ble.sh
開始後に追加された最初の履歴項目からの相対位置〉で指定します。
対象範囲の終端点は常にコマンド履歴の終端です。
[ 日本語 | English ] ≫ 説明書 [§1 基本 | §2 描画 | §3 束縛 | §4 編集 | §5 Emacs | §6 Vim | §7 補完 | §8 他 | 索引]