-
-
Notifications
You must be signed in to change notification settings - Fork 86
説明書 §7 補完
[ 日本語 | English ] ≫ 説明書 [§1 基本 | §2 描画 | §3 束縛 | §4 編集 | §5 Emacs | §6 Vim | §7 補完 | §8 他 | 索引]
補完の設定は complete_load
フックまたは ble-import core-complete
のコールバッ
ク経由で実行する必要があります。以下は complete_load
フックを用いて bleopt complete_auto_delay
を設定する例です。
# blerc
function my/complete-load-hook {
bleopt complete_auto_delay=300
}
blehook/eval-after-load complete my/complete-load-hook
# ble-0.3以前
# ble/array#push _ble_complete_load_hook my/complete-load-hook
以下は ble-import
コールバックを用いて設定する例です。
# blerc
function my/set-up-completion {
bleopt complete_auto_delay=300
}
ble-import core-complete -C 'my/set-up-completion'
操作 | 編集関数 | 説明 |
---|---|---|
C-i, TAB | complete |
補完 |
M-? (Emacs) | complete show_menu |
候補表示 |
M-* (Emacs) | complete insert_all |
全候補挿入 |
M-{ (Emacs) | complete insert_braces |
全候補挿入 (ブレース展開) |
C-TAB | menu-complete |
メニュー補完 |
S-C-i, S-TAB | menu-complete backward |
メニュー補完 (最後の候補) |
M-/ (Emacs) | complete context=filename |
ファイル名を補完 |
M-~ (Emacs) | complete context=username |
ユーザ名を補完 |
M-$ (Emacs) | complete context=variable |
変数名を補完 |
M-@ (Emacs) | complete context=hostname |
ホスト名を補完 |
M-! (Emacs) | complete context=command |
コマンド名を補完 |
C-x / (Emacs) | complete show_menu:context=filename |
ファイル名候補を一覧表示 |
C-x ~ (Emacs) | complete show_menu:context=username |
ユーザ名候補を一覧表示 |
C-x $ (Emacs) | complete show_menu:context=variable |
変数名候補を一覧表示 |
C-x @ (Emacs) | complete show_menu:context=hostname |
ホスト名候補を一覧表示 |
C-x ! (Emacs) | complete show_menu:context=command |
コマンド名候補を一覧表示 |
C-x / (Vim) | menu-complete context=filename |
ファイル名をメニュー補完 |
C-x ~ (Vim) | menu-complete context=username |
ユーザ名をメニュー補完 |
C-x $ (Vim) | menu-complete context=variable |
変数名をメニュー補完 |
C-x @ (Vim) | menu-complete context=hostname |
ホスト名をメニュー補完 |
C-x ! (Vim) | menu-complete context=command |
コマンド名をメニュー補完 |
M-g (Emacs) | complete context=glob |
パス名展開 |
C-x * | complete context=glob:insert_all |
パス名展開を全候補挿入 |
C-x g | complete context=glob:show_menu |
パス名展開を一覧表示 |
C-M-i, M-TAB | complete context=dynamic-history |
動的単語 (履歴の単語) |
7.1.1 編集関数 complete
†
widget: complete $opts
OPTIONS
$opts コロン区切りの以下の設定の組み合わせです。
insert_common
insert_all
insert_braces
insert_unique
toggle_menu
enter_menu
show_menu
context=CONTEXT
backward
no-empty
no-bell
既定の設定では C-i または TAB で補完を試みます。
既に候補一覧が表示されている時には後述のメニュー補完に移行します。
補完では先ず初めに補完候補の生成を実行します。
最初に Bash の組み込みコマンド complete
によって設定したプログラム補完が試みられ、
次に ble.sh
に組み込まれた補完候補生成器が試みられます。
補完候補が一つも生成されない場合には次に曖昧補完候補の生成が試みられます。
次に補完が実行されます。
-
insert_common
が指定された時または他の挿入方法が何も指定されていない時、 現在入力済みの部分を接頭辞とする候補の共通一致部分が挿入されます。 補完候補が一意の場合には、その候補を挿入し補完を完了します。 補完候補が2つ以上ある場合には、候補一覧を表示します。 -
insert_all
が指定されている時、全ての補完候補をコマンドラインに挿入し、補完を完了します。 -
insert_braces
が指定されている時、全ての補完候補をブレース展開を用いて縮約した形式でコマンドラインに挿入し、補完を完了します。 -
toggle_menu
が指定されている時、補完メニューが表示されていなければ表示します。補完メニューが表示されている時は非表示にします。 -
enter_menu
が指定されている時、補完メニューを表示し一つ目の候補が選択された状態でメニュー補完モードに移行します。 もしbackward
が指定されていれば、一つ目の候補の代わりに最後の候補を選択した状態になります。 もしinsert_unique
が指定されていてかつ補完候補が一意の時には、 メニューに入る代わりにその候補をコマンドラインに挿入し補完を完了します。 -
show_menu
が指定されている時、補完メニューを単に表示し他は何もしません。 もしinsert_unique
が指定されていてかつ補完候補が一意の時には、代わりに候補を挿入し補完を完了します。
補完の完了時に、挿入された補完候補のそれぞれに対して、候補に接尾辞や閉じ引用符が必要に応じて追加されます。
M-? (Emacs 編集モード) を用いた時 (編集関数の引数 $opts
に show_menu
を指定した時) は、
候補を生成した後に、補完を実行せずに候補一覧を表示します。
C-TAB を用いた時 (編集関数の引数 $opts
に enter_menu
を指定した時) は、
候補を生成した後に、補完を実行せずに後述のメニュー補完に入ります。
Emacs 編集モードで M-/, M-~, M-$, M-@, M-! を用いた時
(編集関数の引数 $opts
に context=filename
, context=username
, context=variable
, context=hostname
, context=command
を指定した時)、
それぞれファイル名、ユーザ名、変数名、ホスト名、コマンド名を補完候補として生成して補完を試みます。
Emacs 編集モードで C-x /, C-x ~, C-x $, C-x @, C-x ! を用いた時
(編集関数の引数 $opts
に前述の context=*
に加えて show_menu
を指定した時),
それぞれの補完候補を生成した後、補完を実行せずに候補一覧を表示します。
Vim 編集モードで C-x /, C-x ~, C-x $, C-x @, C-x ! を用いた時
(編集関数の引数 $opts
に前述の context=*
に加えて enter_menu
を指定した時),
それぞれの補完候補を生成した後、後述のメニュー補完に入ります。
7.1.2 編集関数 menu-complete
(v0.3)†
widget: menu-complete $opts
ble/widget/complete enter_menu:insert_unique:$opts
の別名です。
詳細は complete
の説明を参照して下さい。
7.1.3 設定変数 complete_ambiguous
(空/非空) (v0.3)†
# 既定値
bleopt complete_ambiguous=1
非空文字列の時、曖昧一致する補完候補を生成します。 空文字列を設定した時、曖昧一致する補完候補の生成を無効化します。
7.1.4 設定変数 complete_contract_function_names
(空/非空) (v0.3)†
# 既定値
bleopt complete_contract_function_names=1
非空文字列の時、関数名を他のファイル名と同様に /
区切りで補完候補の生成を行います。
空文字列の時、/
を含む全ての関数名を一度に候補として生成します。
7.1.5 設定変数 complete_polling_cycle
(算術式) (v0.2)†
# 既定値
bleopt complete_polling_cycle=50 # ble-0.3
bleopt complete_stdin_frequency=50 # ble-0.2 (互換性 obsoleted)
補完候補の生成中にユーザの入力があると補完がキャンセルされ、 その場でユーザの入力に応答します。 この設定変数でユーザの入力をチェックする間隔 (単位は候補の生成数) を指定します。
7.1.6 設定変数 complete_limit
(算術式/空) (v0.4)†
# 既定値
bleopt complete_limit=
補完候補生成時に処理する候補数の上限を与えます。上限を超えた時、補完処理を中断します。
空文字列が設定されている時は上限のチェックを行いません。
この設定項目は特にユーザによる補完処理 (TAB 補完) に対して適用されます。
自動補完に対する設定については以下の complete_limit_auto
を御参照ください。
7.1.7 設定変数 complete_limit_auto
(算術式/空) (v0.4)†
# 既定値
bleopt complete_limit_auto=2000
この設定項目は自動補完に対する complete_limit
と同様の設定です。
空文字列が設定されている時は complete_limit
の設定が参照されます。
7.1.8 設定変数 complete_limit_auto_menu
(算術式/空) (v0.4)†
# 既定値
bleopt complete_limit_auto_menu=100
この設定項目は自動メニューに対する complete_limit
と同様の設定です。
空文字列が設定されている時は complete_limit
の設定が参照されます。
7.1.9 設定変数 complete_timeout_auto
(算術式/空) (v0.4)†
# 既定値
bleopt complete_timeout_auto=5000
自動補完内部で行うパス名展開のタイムアウトの設定です。 補完対象の単語が評価に時間のかかるグロブパターンを含んでいる時に、 この設定に基づいてパス名展開を停止し自動補完をキャンセルします。 設定値はミリ秒単位のタイムアウト時間です。 空文字列を設定した時、タイムアウトは無効化されます。
7.1.10 設定変数 complete_timeout_compvar
(算術式/空) (v0.4)†
# 既定値
bleopt complete_timeout_compvar=200
プログラム補完で使用する COMP_WORDS
と COMP_LINE
を構築する時に行うパス名展開のタイムアウトの設定です。
入力済みの単語が評価に時間のかかるグロブパターンを含んでいる時に、
この設定に基づいてパス名展開を停止します。
タイムアウトが発生した時は代わりにパス名展開を無効にして展開した結果を COMP_WORDS
and COMP_LINE
の値として使用します。
設定値はミリ秒単位のタイムアウト時間です。
空文字列を設定した時、タイムアウトは無効化されます。
7.1.11 設定変数 complete_allow_reduction
(空/非空) (v0.4)†
# 既定値
bleopt complete_allow_reduction= # ble-0.4
外部の枠組みで生成された補完候補が既に入力済みの文字列を含まない時、 この設定が空文字列ならば一意確定の時にのみ遡って書き換える事を許します。 非空文字列ならば常に遡って書き換える事を許します。
7.1.12 設定変数 complete_requote_threshold
(算術式) (v0.4)†
# 既定値
bleopt complete_requote_threshold=0
単語確定時にクォートを単純化する閾値を算術式で指定します。 負の値を指定した時、クォートの単純化は無効化されます。 それ以外の場合は、少なくとも指定された数だけ文字数が減少する時にクォートの単純化が実施されます。 既定値は 0 です。つまり、文字数が増えない限りはクォートの単純化が実施されます。
7.1.13 Bash 設定 no_empty_cmd_completion
†
# bashrc
# 既定値
shopt -u no_empty_cmd_completion
Bash の設定 no_empty_cmd_completion
で振る舞いが変わります。
設定されている場合は、空文字列によるコマンド名候補生成を実行しません。
7.1.14 Bash 設定 force_fignore
†
# bashrc
# 既定値
shopt -s force_fignore
Bash の設定 force_fignore
で振る舞いが変わります。
設定されている場合は、ファイル名以外の候補生成についてもシェル変数 FIGNORE
によるフィルタを実施します。
シェル変数 FIGNORE
にコロン区切りで指定された接尾辞を持つ候補は削除されます。
7.1.15 Readline 変数 completion-ignore-case
(v0.3)†
# bashrc
# 既定値
bind 'set completion-ignore-case off'
Readline の設定 completion-ignore-case
で振る舞いが変わります。
候補生成時に大文字・小文字を区別しません。
# bashrc
# 既定値
bleopt complete_skip_matched=on # ble-0.4以降
bind 'set skip-completed-text on'
bind 'set skip-completed-text off' # ble-0.3
非空文字列が指定されている場合、
補完確定時にカーソルの右側にある補完内容に一致する文字列を削除します。
Readline 変数 skip-completed-text
と同期されます。
7.1.17 Readline 変数 visible-stats
(v0.3)†
# bashrc
# 既定値
bind 'set visible-stats off'
メニュー補完のファイル名候補を表示する時にファイルの種類を示す接尾辞を表示します。
シンボリックリンクの場合は @
を、ディレクトリの場合は /
を、実行可能なファイルの場合には *
を付加します。
7.1.18 Readline 変数 mark-directories
(v0.3)†
# bashrc
# 既定値
bind 'set mark-directories on'
ディレクトリ名の補完直後に /
を挿入します。
7.1.19 Readline 変数 mark-symlinked-directories
(v0.3)†
# bashrc
# 既定値
bind 'set mark-symlinked-directories on'
ディレクトリを指しているシンボリックリンクの補完直後に /
を挿入します。
7.1.20 Readline 変数 match-hidden-files
(v0.3)†
# bashrc
# 既定値
bind 'set match-hidden-files on'
ファイル名候補の生成時に .
で始まるファイル名に一致します。
7.1.21 Readline 変数 menu-complete-display-prefix
(v0.3)†
# bashrc
# 既定値
bind 'set menu-complete-display-prefix off'
メニュー補完において接頭辞部分を表示します。
例えば、通常は dir/file*
の形の補完候補を表示する時、ディレクトリ名 dir/
は省略されますが、
このオプションを有効にすると省略をせずに全て表示します。
7.1.22 設定変数 complete_source_sabbrev_ignore
(コロン区切りグロブ) (v0.4)†
# 既定値
bleopt complete_source_sabbrev_ignore=
コロン区切りのグロブパターンで、静的略語展開候補の生成時に無視する略語を指定します。
7.1.23 設定変数 complete_source_sabbrev_opts
(opts) (v0.4)†
# 既定値
bleopt complete_source_sabbrev_opts=
コロン区切りのオプションを指定します。
オプション no-empty-completion
が指定されている時、補完対象の単語が空文字列の時、静的略語展開候補は生成されません。
7.2 メニュー補完 (menu-complete)†
候補一覧が表示されている状態で C-i または TAB を入力するとメニュー補完に入ります。 メニュー補完に入る操作 (C-TAB または Vim 編集モードの C-x /, C-x ~, C-x $, C-x @, C-x !) を用いてメニュー補完に入ることもできます。 メニュー補完の中にいる時、以下の操作が有効です。
操作 | 編集関数 | 説明 |
---|---|---|
C-m, RET | menu_complete/accept |
確定 |
C-g, C-x C-g, C-M-g | menu_complete/cancel |
キャンセル |
__default__ | menu_complete/exit-default |
メニュー補完を抜け、既定の動作 |
C-f, right | menu/forward-column |
次の候補 |
C-i, TAB | menu/forward cyclic |
次の候補 (循環) |
C-b, left | menu/backward-column |
前の候補 |
C-S-i, S-TAB | menu/backward cyclic |
前の候補 (循環) |
C-n, down | menu/forward-line |
下の行の候補 |
C-p, up | menu/backward-line |
上の行の候補 |
prior | menu/backward-page |
前の頁 |
next | menu/forward-page |
次の頁 |
home | menu/beginning-of-page |
現在の頁の最初の候補に移動 |
end | menu/end-of-page-page |
現在の頁の最後の候補に移動 |
C-x SP | menu_complete/toggle-hidden |
補完メニューの表示・非表示切り替え |
C-x right, C-x C-n | menu_complete/switch-style + |
次のメニュースタイル |
C-x left, C-x C-p | menu_complete/switch-style - |
前のメニュースタイル |
C-x a | menu_complete/switch-style align-nowrap |
メニュースタイルを align-nowrap に変更 |
C-x c | menu_complete/switch-style dense-nowrap |
メニュースタイルを dense-nowrap に変更 |
C-x d | menu_complete/switch-style desc |
メニュースタイルを desc に変更 |
C-x l | menu_complete/switch-style linewise |
メニュースタイルを linewise に変更 |
C-0..9, M-0..9 | menu/append-arg |
数字入力開始 |
C-0..9, M-0..9, 0..9 | menu/append-arg |
数字入力続き |
7.2.1 設定変数 complete_menu_complete
(空/非空)†
# 既定値
bleopt complete_menu_complete=1
非空文字列が設定されている場合、
候補一覧が表示されている時に C-i または TAB を入力した時
(編集関数 complete
を呼び出した時)、メニュー補完に入ります。
空文字列が設定されている場合、メニュー補完に入らずに通常の補完を再度試みます。
7.2.2 設定変数 complete_menu_complete_opts
(コロン区切りリスト) (v0.4)†
# 既定値
bleopt complete_menu_complete_opts=insert-selection
メニュー補完の詳細な振る舞いを制御するコロン区切りのリストです。
insert-selection
が指定されている時、現在選択されているメニュー項目を一時的に
コマンドラインに挿入します。hidden
が指定されている時、insert-selection
が
自動で有効になり、それに加えてメニュー補完時に既定ではメニューを表示せずにコマ
ンドラインに挿入される選択肢だけ巡回します。
7.2.3 設定変数 complete_menu_style
(v0.3)†
# 既定値
bleopt complete_menu_style=align-nowrap
候補一覧の見た目を制御します。
値 dense
が指定されている場合、全候補を空白区切りで並べます。
候補が行を跨ることもあります。
値 dense-nowrap
が指定されている場合、
候補が行を跨がらないように適宜改行を挿入して全候補を空白区切りで並べます。
値 align
が指定されている場合、候補が縦に並ぶ様に間隔を調整して並べます。
値 align-nowrap
が指定されている場合、
候補が行内に収まらない時に適宜改行を挿入して、間隔を調整して候補を並べます。
値 linewise
が指定されている場合、一行に一候補ずつ表示します。
値 desc
が指定されている場合、一行に一候補ずつ説明付きで表示します。
値 desc-raw
が指定されている場合は、更に説明に含まれる制御シーケンスが処理されます。
7.2.4 設定変数 complete_menu_maxlines
(算術式) (v0.4)†
# 既定値
bleopt complete_menu_maxlines=-1
正の整数に評価される時、候補一覧の高さをその行数に制限します。
7.2.5 設定変数 menu_align_max
(算術式) (v0.3)†
# 既定値
bleopt menu_align_max=20 # ble-0.4
bleopt complete_menu_align=20 # ble-0.3 (ble-0.4 で廃止)
設定変数 complete_menu_style
に align
または align-wrap
が設定されている時に使われます。
候補を並べる間隔の単位の最大幅を指定します。
7.2.6 設定変数 menu_align_min
(算術式) (v0.3)†
# 既定値
bleopt menu_align_min=4
設定変数 complete_menu_style
に align
または align-wrap
が設定されている時に使われます。
候補を並べる間隔の単位の最小幅を指定します。
# 既定値
bleopt menu_prefix=
bleopt menu_align_prefix=
bleopt menu_desc_prefix=
bleopt menu_linewise_prefix=
bleopt menu_dense_prefix=
# 設定例
bleopt menu_align_prefix='\e[1m%d:\e[m '
bleopt menu_desc_prefix='\e[1m%d.\e[m '
bleopt menu_dense_prefix='\e[1;32m>\e[m '
bleopt menu_linewise_prefix='\e[1;36m%d:\e[m '
メニュー項目の先頭に表示する接頭辞または項目番号の書式を指定します。
menu_prefix
は共通の既定の接頭辞を設定します。
menu_{align,desc,linewise,dense}_prefix
はそれぞれ対応する menu-style における接頭辞を設定します。
項目番号を最初の引数とした printf
書式で指定します。ANSI制御シーケンスも有効です。
7.2.8 設定変数 menu_desc_multicolumn_width
(printf書式/ANSI) (v0.4)†
# 既定値
bleopt menu_desc_multicolumn_width=65
# 設定例: multicolumn を無効化
bleopt menu_desc_multicolumn_width=
設定変数 complete_menu_style
に desc
(または desc-text
) を指定している時、複数カラム表示の際の最小カラム幅を指定します。
空文字列が設定されている時、複数カラム表示は無効化されます。
7.2.9 設定変数 complete_menu_color
(空/非空) (v0.4)†
# bashrc
# 既定値
bleopt complete_menu_color=on
bind 'set colored-stats on'
非空文字列が指定されている場合、メニュー項目の着色を有効にします。
Readline 変数 colored-completion-stats
と同期されます。
7.2.10 設定変数 complete_menu_color_match
(空/非空) (v0.4)†
# bashrc
# 既定値
bleopt complete_menu_color_match=on
bind 'set colored-completion-prefix on'
非空文字列が指定されている場合、メニュー項目の入力済み文字列に一致する部分を強調表示します。
Readline 変数 colored-completion-prefix
と同期されます。
7.2.11 描画設定 menu_desc_default
(v0.4)†
# 既定値
ble-face menu_desc_default=none
メニューの説明文に使われる既定の描画設定です。
7.2.12 描画設定 menu_desc_type
(v0.4)†
# 既定値
ble-face menu_desc_type=ref:syntax_delimiter
メニューの説明文中でメニュー項目の種類を示す (type)
の形式の表示に使われる描画設定です。
7.2.13 描画設定 menu_desc_quote
(v0.4)†
# 既定値
ble-face menu_desc_quote=ref:syntax_quoted
メニューの説明文中でクォートされた文字列を示すのに使われる描画設定です。
7.2.14 描画設定 menu_complete_match
(v0.4)†
# 既定値
ble-face menu_complete_match=bold
候補の絞り込み文字列に一致する部分に適用する追加の描画設定を指定します。
7.2.15 描画設定 menu_complete_selected
(v0.4)†
# 既定値
ble-face menu_complete_selected=reverse
選択された候補に追加する描画設定を指定します。
7.2.16 描画設定 cmdinfo_cd_cdpath
(v0.4)†
CDPATH
を元にして生成された補完候補の着色に用いる描画設定です。
# 既定
ble-face cmdinfo_cd_cdpath='fg=26,bg=155'
7.3 自動補完 (auto-complete) (Bash 4.0 以降) (v0.3)†
Bash 4.0 以降で自動補完 (推測候補) が有効になります。
操作 | 編集関数 | 説明 |
---|---|---|
C-g | auto_complete/cancel |
キャンセル |
S-RET, S-C-m | auto_complete/insert |
確定 |
C-f, right, C-e, end | auto_complete/@end insert |
行末なら確定、それ以外ならキャンセルし既定の動作 |
M-f, C-right | auto_complete/@end insert-cword |
C単語確定 |
M-right | auto_complete/@end insert-word |
単語確定 |
C-j, C-RET | auto_complete/accept-line |
自動補完を確定し RET 実行 |
__defchar__ | auto_complete/self-insert |
1文字入力 |
__default__ | auto_complete/cancel-default |
自動補完をキャンセルし、既定の動作 |
7.3.1 設定変数 complete_auto_complete
(空/非空) (v0.3)†
# 既定値
bleopt complete_auto_complete=1
非空文字列が設定されている時、自動補完が有効です。 空文字列が設定されている時、自動補完は無効化されます。
7.3.2 設定変数 complete_auto_delay
(算術式) (v0.3)†
# 既定値
bleopt complete_auto_delay=1
ユーザが最後に入力を行ってから自動補完を開始するまでの待ち時間を設定します。単位はミリ秒です。
7.3.3 設定変数 complete_auto_history
(空/非空) (v0.3)†
# 既定値
bleopt complete_auto_history=1
非空文字列が設定されている時、 履歴から現在のコマンドラインに前方一致する履歴行を検索し自動補完します。
7.3.4 設定変数 complete_auto_wordbreaks
(文字集合) (v0.4)†
# 既定値
bleopt complete_auto_wordbreaks=$' \t\n'
自動補完の単語挿入 (M-right) で用いる単語の区切り文字を設定します。
7.3.5 設定変数 complete_auto_complete_opts
(コロン区切りリスト) (v0.4)†
# 既定値
bleopt complete_auto_complete_opts=
自動補完の振る舞いを制御するコロン区切りのリストです。
-
suppress-after-complete
が指定されている時、タブ補完の後に自動補完が有効になります。 その他の場合は、タブ補完の後に自動補完は有効になりません。
7.3.6 設定変数 complete_auto_menu
(空/算術式) (v0.4)†
# 既定値
bleopt complete_auto_menu=
自動メニュー (auto-menu) の遅延時間を設定します。 非空文字列が設定されている時、自動メニューが有効になります。 設定されている文字列を算術式として評価した結果を遅延時間 (単位はミリ秒) とします。 ユーザーが操作しない時間が遅延時間に達した時に、自動的にメニューを表示します。
7.3.7 描画設定 auto_complete
(v0.3)†
# 既定値
ble-face auto_complete='bg=254,fg=238'
自動補完に依って呈示されている文字列を表示するのに使われる描画設定です。
7.4 候補絞り込み (menu-filter) (Bash 4.0 以降) (v0.3)†
Bash 4.0 以降で候補絞り込みが有効になります。 候補一覧を表示した状態で入力を続けると、 入力した内容に応じて候補が絞り込まれます。
7.4.1 設定変数 complete_menu_filter
(空/非空) (v0.3)†
# 既定値
bleopt complete_menu_filter=1
非空文字列が設定されている時、候補絞り込みが有効になります。 空文字列が設定されている時、候補絞り込みは無効化されます。
7.4.2 描画設定 menu_filter_fixed
(v0.3)†
# 既定値
ble-face menu_filter_fixed=bold
候補絞り込みの固定部分を表示するのに使う描画設定です。
7.4.3 描画設定 menu_filter_input
(v0.3)†
# 既定値
ble-face menu_filter_input='fg=16,bg=229'
候補絞り込みの編集範囲を表示するのに使う描画設定です。
7.5 静的略語展開 (sabbrev)†
操作 | 編集関数 | 説明 |
---|---|---|
SP | magic-space |
静的略語展開を含む各種展開を実行し空白を挿入 |
/ | magic-slash |
名前付きディレクトリ展開 (~ で始まる静的略語展開) を実行しスラッシュを挿入 |
M-', C-x ' (Emacs) C-] (Vim) |
sabbrev-expand |
静的略語展開 |
静的略語展開は zsh-abbreviations
のような機能を提供します。
静的略語展開は SP (編集関数 magic-space
)、
または M-', C-x ' (Emacs), C-] (Vim) (編集関数 sabbrev-expand
)
によって実行されます。
7.5.1 関数 ble-sabbrev
†
# hook:complete_load
ble-sabbrev [-wmil] [KEY=VALUE|KEY=]...
ble-sabbrev
は略語展開を登録する関数です。
各引数の一番左の =
の左辺を KEY
と解釈し、右辺を VALUE
と解釈します。
単語 KEY
を VALUE
に展開する略語展開を追加します。
VALUE
を省略した場合、その KEY
に設定された略語展開を削除します。
-
単語静的略語:
-w
オプションを指定した時または何も展開の種類を指定しなかった時は、KEY
は現在位置直前の単語に一致します。 -
動的静的略語:
-m
オプションを指定した場合は、最初の=
の右辺をCOMMAND
と解釈します。 展開時にCOMMAND
をシェルコマンドとして実行して生成された候補による補完を開始します。COMMAND
は 配列COMPREPLY
に単語候補を格納するか、ble/complete/cand/yield
関数を用いて詳細を指定して候補を生成します。 -
インライン静的略語:
-i
オプションを指定した場合は、KEY
は現在位置を終端とする任意の部分文字列に一致します。 -
行静的略語:
-l
オプションを指定した場合は、KEY
は現在行の現在位置以前の部分に一致します。 -
末尾静的略語:
-s
オプションを指定した場合は、KEY
は (既知のコマンド名 に一致しない) コマンド名の拡張子に一致します。KEY
には拡張子を分けるための.
は含みません。展開時にVALUE
をコマンド名の前に挿入します。Zsh の suffix エイリアスに類似の機能です。
# hook:complete_load
# 設定例
ble-sabbrev L='| less'
ble-sabbrev '\date'='date +%F'
静的略語展開は Zsh の名前付きディレクトリの機能を模倣するのにも使えます。
Bash 自体はチルダ展開で ~named_dir
(但し named_dir
はユーザー名でない) を展開する機能はありませんが、
静的略語 ~name_dir
が定義されている時、ble.sh
では ~named_dir
の直後に SP または / を入力することでコマンドライン上で展開を実行できます。
# hook:complete_load
# 設定例
ble-sabbrev "~mybin=$HOME/bin"
ble-sabbrev "~local=$HOME/.local"
7.6 動的略語展開†
動的略語展開は、
現在の単語に前方一致する単語 (空白またはシェル変数 COMP_WORDBREAKS
に含まれる文字で区切られた文字列)
を履歴から検索して補完する機能です。
C-x C-r で動的略語展開を開始します。
操作 | 編集関数 | 説明 |
---|---|---|
C-x C-r | dabbrev-expand |
動的略語展開の開始 |
動的略語展開を実行している時の操作は以下のようにします。
操作 | 編集関数 | 説明 |
---|---|---|
C-r | dabbrev/next |
次の候補 |
C-s | dabbrev/prev |
前の候補 |
C-g | dabbrev/cancel |
キャンセル |
C-m, RET | dabbrev/exit |
確定 |
C-j, C-RET | dabbrev/exit |
確定して RET 実行 |
__default__ | dabbrev/exit-default |
確定して既定の動作を行う |
[ 日本語 | English ] ≫ 説明書 [§1 基本 | §2 描画 | §3 束縛 | §4 編集 | §5 Emacs | §6 Vim | §7 補完 | §8 他 | 索引]