Skip to content
Koichi Murase edited this page Aug 21, 2020 · 16 revisions

[ 日本語 | English ]

Q1. ファイル名の描画設定に$LS_COLORS変数の設定を取り込みたい

# blerc
bleopt filename_ls_colors="$LS_COLORS"

参考: O, S

Q2. SGR形式の描画属性指定を使いたい

# blerc
ble-color-setface filename_directory sgrspec:'1;34'

参考: R

Q3. 自動補完を無効にしたい

# blerc
bleopt complete_auto_complete=

参考: Q

Q4. 自動補完に遅延を設定したい

# blerc

# 例1: 300ミリ秒
bleopt complete_auto_delay=300

# 例2: 10ミリ秒
bleopt complete_auto_delay=10

参考: E

Q5. 起動している複数のBash間で履歴を共有したい

# blerc
bleopt history_share=1

参考: S

Q6. (key-chord.elvim-arpeggio と同様の)「キーの同時押し」を束縛したい

# blerc

# 例1: j及びkを40ミリ秒間に続けて入力するとノーマルモードに移行する
ble-bind -m vi_imap -f 'j k' 'vi_imap/normal-mode'
ble-bind -m vi_imap -f 'k j' 'vi_imap/normal-mode'
ble-bind -m vi_imap -T j 40
ble-bind -m vi_imap -T k 40

# 例2: “vim-arpeggio.sh”ライブラリを用いる
source "$_ble_base/lib/vim-arpeggio.sh"
bleopt vim_arpeggio_timeoutlen=40
ble/lib/vim-arpeggio.sh/bind -m vi_imap -f jk vi_imap/normal-mode

参考: Q

Q7. エディタ(Vim)でコマンドラインを編集したい(既定のBashの vi-command キーマップのvと同様に)

# blerc

# 例1: Emacsモードに対して“C-x C-v”を束縛
VISUAL='vim -X'
ble-bind -m emacs -f 'C-x C-v' 'edit-and-execute-command'

# 例2: Vimモードに対して“C-x C-v”を束縛
VISUAL='vim -X'
ble-bind -m vi_imap -f 'C-x C-v' 'edit-and-execute-command'
ble-bind -m vi_nmap -f 'C-x C-v' 'vi-command/edit-and-execute-command'

参考: Q

Q8. 大文字・小文字の違いを無視して補完したい

# blerc
bind 'set completion-ignore-case on'

参考: Q

Q9. 自動補完候補の配色を変えたい

# blerc

# 例1
ble-color-setface auto_complete fg=242,bg=235

# 例2
ble-color-setface auto_complete fg=white,bg=69

# 例3
ble-color-setface auto_complete fg=240,underline,italic

# 例4
ble-color-setface auto_complete fg=gray

# 例5
ble-color-setface auto_complete fg=242,italic

参考: Q, E, E

Q10. 終了ステータスの標示 [ble: exit 〈番号〉] を消したい

# blerc
bleopt exec_errexit_mark=

既定では、コマンドが非零の終了ステータスで終わった場合、[ble: exit 〈番号〉] のような行を出力します。 この挙動を止めるには、ble 設定変数 exec_errexit_mark の値を空にしてください。

参考: Q

Q11. M-right が動かない

お使いの端末における Meta キーの取り扱いを適切に設定する必要があります。 歴史的に Meta キーには二種類の取り扱いが存在します。

  • Meta 文字: 一つは ASCII 外の文字 (8 bit 文字) を送信するというものです。 8 bit 文字はアクセント付きのアルファベットなど言語に依存する文字です。 例えば "Meta + A" で Á を入力するのに使います。
  • Meta 修飾: もう一つは "Meta 修飾" されたキー入力 (Emacs の記法で書くと M- 修飾) をエスケープシーケンスに変換して送ります。

お使いの端末やお好みの振る舞いに応じて適切な設定をする必要があります。 以下に示すのは iTerm2 における設定例です。

  • 選択肢 1 (常時 Meta 修飾): Meta キーが押された時に組み合わせるキーに関わらず常に M-… を送信する場合は、 こちらの 回答 の画像にある通り、 "Left/Right ⌥ Key" の設定を "Esc+" にします。

  • 選択肢 2 (ファンクションキーに対してのみ Meta 修飾): 通常の組み合わせ (Meta + アルファベット・数字・記号類) については Meta 文字を送信し、 ファンクションキー (カーソルキー、Home, PageDown, Delete など) との組み合わせについては Meta 修飾されたキーを送信したい場合がこちらに該当します。 iTerm2 の設定 "Natural Text Editing" がこれを実装したものと思われます。 この設定を利用する時は、"Left/Right ⌥ Key" の設定は "Normal" に戻しておく必要があります。 この設定が思うように動かない場合は次の "選択肢3" を参考にして下さい。

  • 選択肢 3 (指定したキーについてのみ Meta 修飾): 既定で Meta 文字を送信し、指定したキーとの組み合わせについてだけ Meta 修飾したキーを送信したい場合は、 それぞれのキーの組み合わせに対してエスケープシーケンスを自分で設定する必要があります。 例として特に M-right に対して特別なエスケープシーケンスを送信したい場合は、 こちらの回答 が参考になります。 この回答では Meta + left/right の入力に対して M-b/M-f を送信する様に設定しています。 この設定を利用する時は、"Left/Right ⌥ Key" の設定は "Normal" または "Meta" にしておく必要があります。

  • 選択肢 4 ("左 ⌥" は Meta 文字、"右 ⌥" は Meta 修飾): 左右の "⌥" キーに対して別々の役割を割り当てることもできます。 例えば "左 ⌥" に対して Meta 文字を、"右 ⌥" に対しては Meta 修飾されたキー入力を送信したい時は、 "Left ⌥ Key" を "Meta" に、"Right ⌥ Key" を "Esc+" に設定します。

参考: A.

Q12. S-RET 等の特別なキーの組み合わせを使うには?

お使いの端末が modifyOtherKeys という機能に対応している場合は、既定で特別なキーの組み合わせをお使いいただけます。 代わりに、お使いの端末が特別なキーの組み合わせに対してエスケープシーケンスを個別に設定できる場合には、 それぞれのキーの組み合わせについて以下のシーケンスをご設定下さい。

Key combination Escape sequence Key combination Escape sequence
S-RET ESC [ 1 3 ; 2 u C-0 ESC [ 4 8 ; 5 u
C-RET ESC [ 1 3 ; 5 u C-1 ESC [ 4 9 ; 5 u
C-S-RET ESC [ 1 3 ; 6 u C-2 ESC [ 5 0 ; 5 u
S-TAB ESC [ 9 ; 2 u C-3 ESC [ 5 1 ; 5 u
C-TAB ESC [ 9 ; 5 u C-4 ESC [ 5 2 ; 5 u
C-S-TAB ESC [ 9 ; 6 u C-5 ESC [ 5 3 ; 5 u
S-SP ESC [ 3 2 ; 2 u C-6 ESC [ 5 4 ; 5 u
C-S-SP ESC [ 3 2 ; 6 u C-7 ESC [ 5 5 ; 5 u
S-BS ESC [ 8 ; 2 u C-8 ESC [ 5 6 ; 5 u
C-S-BS ESC [ 8 ; 6 u C-9 ESC [ 5 7 ; 5 u

より詳細な説明については説明書の "3.6 `modifyOtherKeys' の設定" をご参照下さい。

参考: A.

Q13. auto-complete で M-right で挿入する単語の区切りを変えたい

設定変数 complete_auto_wordbreaks を使って設定することができます。

# 例1: 空白類で単語を区切ります (既定)
bleopt complete_auto_wordbreaks=$' \t\n'

# 例2: 空白類に加えて / も単語の区切りとします
bleopt complete_auto_wordbreaks=$' \t\n/'

参考: A

Q14. How to cancel menu-complete?

参考: Q

Q15. How to hide the mode line in Vim editing mode

参照: comment

Q16. How to show current vim mode in the prompt

参照: comment

Q17. How to achieve p10k transient prompt in ble.sh

参照: comment

Q18. How to print the command time in the prompt

参照: comment


[ 日本語 | English ]

Clone this wiki locally