Skip to content

説明書 §2 描画

Koichi Murase edited this page Jan 30, 2021 · 51 revisions

[ 日本語 | English ] ≫ 説明書 [§1 基本 | §2 描画 | §3 束縛 | §4 編集 | §5 Emacs | §6 Vim | §7 補完 | §8 他]

2. 着色・スタイルの設定

2.1 描画属性指定子 (gspec)

描画属性指定子 (gspec) は描画スタイル (着色や下線などの修飾) を指定する文字列です。 gspec はカンマ (,) 区切りで複数の単一指定を繋げた形式をしています。 単一指定は以下の何れかの形式をしています。

指定 属性
bold 太字 (端末によっては高輝度の前景色)
underline 下線
blink 点滅 (端末によっては低輝度の前景色または高輝度の背景色)
invis 文字不可視
reverse 反転 (端末によっては文字色・背景色の交換)
strike 打ち消し線
italic イタリック
standout 強調。これは bold,reverse の省略記法です
fg=name 前景色(文字色) (name は後述の色名または色番号)
bg=name 背景色 (name は後述の色名または色番号)
none 属性なし (これより先に指定した属性は消去されます)

上記の色名 name には以下の何れかを指定します。

指定 指定
default 既定色 transparent 既定色
black 黒色 (低輝度) gray 黒色 (高輝度)
brown 赤色 (低輝度) red 赤色 (高輝度)
green 緑色 (低輝度) lime 緑色 (高輝度)
olive 黄色 (低輝度) yellow 黄色 (高輝度)
navy 青色 (低輝度) blue 青色 (高輝度)
purple 紫色 (低輝度) magenta 紫色 (高輝度)
teal 水色 (低輝度) cyan 水色 (高輝度)
silver 白色 (低輝度) white 白色 (高輝度)
orange オレンジ

name として以下の色空間に基づく指定を行うこともできます。

指定 色空間 引数
I 256色指定 I は 0-255 の整数 (16 basic colors + 6x6x6 RGB cube + 24 grayscale)
#RGB RGB R, G, B はそれぞれ1桁の16進数
#RRGGBB RGB RR, GG, BB はそれぞれ2桁の16進数
rgb:R/G/B RGB R, G, B はそれぞれ 0-255 の整数または 0%-100% の百分率
cmy:C/M/Y CMY C, M, Y はそれぞれ 0-255 の整数または 0%-100% の百分率
cmyk:C/M/Y/K CMYK C, M, Y, K はそれぞれ 0-255 の整数または 0%-100% の百分率
hsl:H/S%/L% HSL H は整数 (mod 360)、S, L は 0-100 の整数
hsb:H/S%/B% HSB, HSV H は整数 (mod 360)、S, B は 0-100 の整数

例えば gspec bg=black,fg=white,bold,underline は「黒地に白文字で太字の下線つき」という描画属性を表現します。

端末機能による制限

お使いの端末が italic (斜体), blink (点滅), strike (打ち消し線) などの機能に対応していない場合には、 当該スタイルを指定しても正しく表示に反映されない事にご留意いただければ幸いです。 当該スタイルを利用したい場合には、対応している他の端末を探すか、端末の開発者に対応を依頼する事をお薦め致します。

tmux をお使いの場合には、できるだけ多くの機能を有効にする為に tmux オプション default-terminal (既定の TERM 環境変数の値) を tmux-256color また xterm-256color を指定して頂くことがお薦めです。 ~/.tmux.conf に以下の様に設定します。

# .tmux.conf

# Option 1: set default TERM as tmux-256color
set-option -g default-terminal tmux-256color

# Option 2: set default TERM as xterm-256color
set-option -g default-terminal xterm-256color

2.2 描画設定 (face)

描画設定 (face) は名前のついた描画の設定項目で、 それぞれに gspec を設定することができます。 各描画設定は ble.sh の構文着色や様々な描画の際に使われます。

2.2.1 関数 ble-color-setface

2.2.1.1 描画設定を設定する

ble-color-setface face_name [type:]spec

face_name で指定した描画設定を設定します。type の指定は v0.4 以降です。

type spec
gspec (既定値) 描画属性指定子 gspec で指定します
g 描画属性値 (整数値) で指定します
ref 名前または番号で指定した描画設定への参照を指定します
copy 名前または番号で指定した描画設定をコピーします
sgrspec SGRの引数で指定します
ansi ANSI制御シーケンスで描画属性を構築します
# 使用例

ble-color-setface region bg=60,fg=white

2.2.1.2 描画設定の一覧を表示する (v0.4)

ble-color-setface

無引数で ble-color-setface を呼び出すと現在の描画設定の一覧を出力します。

2.2.2 描画設定 region

選択中の範囲を表示するのに使われる描画設定です。

# 既定
ble-color-setface region bg=60,fg=white

2.2.3 描画設定 region_target (v0.2)

現在のコマンドの作用範囲を表示するのに使われる描画設定です。

# 既定
ble-color-setface region_target bg=153,fg=black

2.2.4 描画設定 region_match (v0.3)

検索の一致範囲を表示するのに使われる描画設定です。

# 既定
ble-color-setface region_match bg=55,fg=white

2.2.5 描画設定 region_insert (v0.4)

一時的に挿入された挿入候補を表示するのに使われる描画設定です。

# 既定
ble-color-setface region_insert fg=12,bg=252

2.2.6 描画設定 disabled

キャンセルまたは未実行で一時退避されたコマンドを表示するのに使われる描画設定です。

# 既定
ble-color-setface disabled fg=242

2.2.7 描画設定 overwrite_mode

上書きモード・置換モードにおいて上書きされる文字を表示するのに使われる描画設定です。

# 既定
ble-color-setface overwrite_mode fg=black,bg=51

2.2.8 描画設定 syntax_default

構文着色において通常の文字列を表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_default none

2.2.9 描画設定 syntax_command

構文着色において構文上のコマンド名を表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_command fg=brown

2.2.10 描画設定 syntax_quoted

構文着色において引用符の中身を表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_quoted fg=green

2.2.11 描画設定 syntax_quotation

構文着色において引用符を表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_quotation fg=green,bold

2.2.12 描画設定 syntax_expr

構文着色において算術式を表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_expr fg=26

2.2.13 描画設定 syntax_error

構文着色において構文エラーを示すのに使われる描画設定です。

# 既定
ble-color-setface syntax_error bg=203,fg=231

2.2.14 描画設定 syntax_varname

構文着色において変数名を表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_varname fg=202

2.2.15 描画設定 syntax_delimiter

構文着色においてコマンドを繋ぐ記号やリダイレクションを表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_delimiter bold

2.2.16 描画設定 syntax_param_expansion

構文着色においてパラメータ展開やコマンド置換の括弧を表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_param_expansion fg=purple

2.2.17 描画設定 syntax_history_expansion

構文着色において履歴展開を表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_history_expansion bg=94,fg=231

2.2.18 描画設定 syntax_function_name

構文着色において関数の定義名を表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_function_name fg=92,bold

2.2.19 描画設定 syntax_comment

構文着色においてコメントを表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_comment fg=242

2.2.20 描画設定 syntax_glob (v0.2)

構文着色においてグロブパターンの特殊文字を表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_glob fg=198,bold

2.2.21 描画設定 syntax_brace (v0.2)

構文着色においてブレース展開の括弧を表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_brace fg=37,bold

2.2.22 描画設定 syntax_tilde (v0.2)

構文着色においてチルダ展開を表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_tilde fg=navy,bold

2.2.23 描画設定 syntax_document (v0.2)

構文着色においてヒアドキュメントの内容を表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_document fg=94

2.2.24 描画設定 syntax_document_begin (v0.2)

構文着色においてヒアドキュメントの開始・終了単語を表示するのに使われる描画設定です。

# 既定
ble-color-setface syntax_document_begin fg=94,bold

2.2.25 描画設定 command_builtin_dot

構文着色において組み込みコマンド . を表示するのに使われる描画設定です。

# 既定
ble-color-setface command_builtin_dot fg=red,bold

2.2.26 描画設定 command_builtin

構文着色においてその他の組み込みコマンドを表示するのに使われる描画設定です。

# 既定
ble-color-setface command_builtin fg=red

2.2.27 描画設定 command_alias

構文着色においてエイリアスを表示するのに使われる描画設定です。

# 既定
ble-color-setface command_alias fg=teal

2.2.28 描画設定 command_function

構文着色において関数名を表示するのに使われる描画設定です。

# 既定
ble-color-setface command_function fg=92

2.2.29 描画設定 command_file

構文着色においてファイルのコマンドを表示するのに使われる描画設定です。

# 既定
ble-color-setface command_file fg=green

2.2.30 描画設定 command_keyword

構文着色においてシェルの予約語を表示するのに使われる描画設定です。

# 既定
ble-color-setface command_keyword fg=blue

2.2.31 描画設定 command_jobs

構文着色においてコマンド文脈でジョブ指定を表示するのに使われる描画設定です。

# 既定
ble-color-setface command_jobs fg=red

2.2.32 描画設定 command_directory

構文着色においてコマンド文脈でディレクトリ名を表示するのに使われる描画設定です。

# 既定
ble-color-setface command_directory fg=26,underline

2.2.33 描画設定 filename_directory

構文着色においてディレクトリ名を表示するのに使われる描画設定です。

# 既定
ble-color-setface filename_directory underline,fg=26

2.2.34 描画設定 filename_directory_sticky (v0.3)

構文着色において sticky ビットを持つディレクトリ名を表示するのに使われる描画設定です。

# 既定
ble-color-setface filename_directory_sticky underline,fg=white,bg=26

2.2.35 描画設定 filename_link

構文着色においてシンボリックリンクの名前を表示するのに使われる描画設定です。

# 既定
ble-color-setface filename_link underline,fg=teal

2.2.36 描画設定 filename_orphan (v0.3)

構文着色において指し示す先のないシンボリックリンクの名前を表示するのに使われる描画設定です。

# 既定
ble-color-setface filename_orphan           underline,fg=teal,bg=224

2.2.37 描画設定 filename_setuid (v0.3)

構文着色において setuid 属性のついたファイルの名前を表示するのに使われる描画設定です。

# 既定
ble-color-setface filename_setuid           underline,fg=black,bg=220

2.2.38 描画設定 filename_setgid (v0.3)

構文着色において setgid 属性のついたファイルの名前を表示するのに使われる描画設定です。

# 既定
ble-color-setface filename_setgid           underline,fg=black,bg=191

2.2.39 描画設定 filename_executable

構文着色において実行属性のついたファイルの名前を表示するのに使われる描画設定です。

# 既定
ble-color-setface filename_executable underline,fg=green

2.2.40 描画設定 filename_other

構文着色においてその他のファイルの名前を表示するのに使われる描画設定です。

# 既定
ble-color-setface filename_other underline

2.2.41 描画設定 filename_socket (v0.2)

構文着色においてソケット名を表示するのに使われる描画設定です。

# 既定
ble-color-setface filename_socket underline,fg=cyan,bg=black

2.2.42 描画設定 filename_pipe (v0.2)

構文着色において名前付きパイプの名前を表示するのに使われる描画設定です。

# 既定
ble-color-setface filename_pipe underline,fg=lime,bg=black

2.2.43 描画設定 filename_character (v0.2)

構文着色において文字デバイスの名前を表示するのに使われる描画設定です。

# 既定
ble-color-setface filename_character underline,fg=white,bg=black

2.2.44 描画設定 filename_block (v0.2)

構文着色においてブロックデバイスの名前を表示するのに使われる描画設定です。

# 既定
ble-color-setface filename_block underline,fg=yellow,bg=black

2.2.45 描画設定 filename_warning (v0.2)

構文着色においてファイル名についての警告がある時に使われる描画設定です。

# 既定
ble-color-setface filename_warning underline,fg=red

2.2.46 描画設定 filename_url (v0.4)

構文着色においてURLの形式をした単語に描画設定です。

# 既定
ble-color-setface filename_url underline,fg=blue

2.2.47 描画設定 filename_ls_colors (v0.3)

構文着色において設定変数 filename_ls_colors による着色に追加する描画設定です。

# 既定
ble-color-setface filename_ls_colors underline

2.2.48 描画設定 varname_unset (v0.4)

値が設定されていない変数名の描画設定です。

#既定
ble-color-setface varname_unset fg=124

2.2.49 描画設定 varname_export (v0.4)

環境変数名 (属性 -x) の描画設定です。

#既定
ble-color-setface varname_export fg=200,bold

2.2.50 描画設定 varname_array (v0.4)

配列変数名 (属性 -a) の描画設定です。

ble-color-setface varname_array fg=orange,bold

2.2.51 描画設定 varname_hash (v0.4)

辞書変数名 (属性 -A) の描画設定です。

#既定
ble-color-setface varname_hash fg=70,bold

2.2.52 描画設定 varname_number (v0.4)

整数属性 (-i) を持つ変数名の描画設定です。 算術式内部での変数名にも用いられます。

#既定
ble-color-setface varname_number fg=64

2.2.53 描画設定 varname_readonly (v0.4)

読み取り専用属性 (-r) を持つ変数名の描画設定です。

#既定
ble-color-setface varname_readonly fg=200

2.2.54 描画設定 varname_transform (v0.4)

大文字 (-u)・小文字 (-l)・頭文字属性 (-c) を持つ変数名の描画設定です。

#既定
ble-color-setface varname_transform fg=29,bold

2.2.55 描画設定 varname_empty (v0.4)

値が空文字列の変数名の描画設定です。

#既定
ble-color-setface varname_empty fg=31

2.2.56 描画設定 varname_expr (v0.4)

算術式を含む変数名の描画設定です。 算術式に於いて整数以外の内容を持つ変数名に用いられます。

#既定
ble-color-setface varname_expr fg=92,bold

2.3 描画に関係する設定変数

2.3.1 設定変数 tab_width (空/整数) (v0.2)

# 既定値
bleopt tab_width=

タブの表示時の幅を指定します。 空文字列を指定したとき terminfo tput it の結果を使用します。

2.3.2 設定変数 emoji_width (v0.2)

# 既定値
bleopt emoji_width=2

絵文字が端末上で表示される時の幅を指定します。 これは ble.sh による座標計算に用いられるので、 お使いの端末の振る舞いに合わせて設定する必要があります。

2.3.3 設定変数 term_index_colors (算術式) (v0.3)

# 既定値
bleopt term_index_colors='256'   # ble.sh ロード時に TERM == [xk]term*|*256color のとき
bleopt term_index_colors='88'    # ble.sh ロード時に TERM == *88color のとき
bleopt term_index_colors=        # それ以外の時

端末が SGR(38;5;色番号), SGR(48;5;色番号) の形式の色指定に対応している時、 使用できる色番号の数を指定します。 空文字列または 0 を指定したとき、端末は色番号による色指定に対応していないと解釈されます。 既定値は環境変数 TERM を元に推測値が設定されます。

2.3.4 設定変数 term_true_colors (空/colon/semicolon) (v0.4)

# 既定値
bleopt term_true_colors=semicolon

この値が semicolon の時、端末が SGR(38;2;R;G;B) の形式の色指定に対応している事を示します。 この値が colon の時、端末が SGR(38:2:R:G:B) の形式の色指定に対応している事を示します。 この値が空文字列の時、端末が 24 bit color に対応していない事を示します。 この時 ble.sh は 24 bit color で指定された配色を適切に減色して出力します。 既定値は semicolon で 24 bit で指定された色は減色せずにそのまま出力します。

2.3.5 設定変数 filename_ls_colors (v0.3)

# 既定値
bleopt filename_ls_colors=

ファイル名の着色に使用する描画設定を LS_COLORS の形式で指定します。

#
bleopt filename_ls_colors="$LS_COLORS"

値はコロン区切りの指定 key=value のリストです。value には SGR の引数を指定します。 以下は、対応している key の種類と、その指定によって上書きされる描画設定の一覧です。 filename_ls_colors 内にこれらの設定があると対応する描画設定は無効になります。 パターン指定は拡張子 *.ext の形式以外には対応しません。 *.tar.gz などの二重拡張子と *.gz などの単一の拡張子の両方の設定に合致する場合は、長い方が優先されます。 認識されない指定に関しては単に無視されます。

key 対応する描画設定
di filename_directory
st filename_directory_sticky
ln filename_link
or filename_orphan
fi filename_other
su filename_setuid
sg filename_setgid
ex filename_executable
cd filename_characater
pi filename_pipe
so filename_socket
bd filename_block
*.ext filename_other のファイルの内、拡張子の一致するもの

2.3.6 設定変数 highlight_syntax (空/非空) (v0.4)

# 既定値
bleopt highlight_syntax=1

非空文字列が設定されている時、文法着色が有効になります。

2.3.7 設定変数 highlight_filename (空/非空) (v0.4)

# 既定値
bleopt highlight_filename=1

非空文字列が設定されている時、ファイルまたはコマンドの種類に基づく文法着色が有効になります。 文法に基づく着色が設定変数 highlight_syntax によって有効になっている必要があります。

2.3.8 設定変数 highlight_variable (空/非空) (v0.4)

# 既定値
bleopt highlight_variable=1

非空文字列が設定されている時、変数の種類に基づく文法着色が有効になります。 文法に基づく着色が設定変数 highlight_syntax によって有効になっている必要があります。

2.3.9 設定変数 highlight_timeout_sync (算術式/空) (v0.4)

# 既定値
bleopt highlight_timeout_sync=500

フォアグラウンドの構文着色で用いるパス名展開のタイムアウトの設定です。 着色対象の単語が評価に時間のかかるグロブパターンを含んでいる時に、 この設定に基づいてパス名展開を一旦停止しバックグラウンドの構文着色で処理する様に手配します。 設定値はミリ秒単位のタイムアウト時間です。 空文字列を設定した時、タイムアウトは無効化されます。

2.3.10 設定変数 highlight_timeout_async (算術式/空) (v0.4)

# 既定値
bleopt highlight_timeout_async=5000

バックグラウンドの構文着色で用いるパス名展開のタイムアウトの設定です。 着色対象の単語が評価に時間のかかるグロブパターンを含んでいる時に、 この設定に基づいてパス名展開を停止しファイル名に基づく着色をキャンセルします。 設定値はミリ秒単位のタイムアウト時間です。 空文字列を設定した時、タイムアウトは無効化されます。

2.4 通知に関する設定

2.4.1 設定変数 edit_abell (空/非空)

設定 edit_abell と設定 edit_vbell は、編集関数 bell の振る舞いを制御します。 edit_abell が非空文字列の場合、音による通知が有効になります (つまり、制御文字の BEL (0x07) が stderr に出力されます)。既定で有効です。 音による通知は以下の様にして無効化できます。

# 既定値
bleopt edit_abell=1

# 設定例 (無効にする場合)
bleopt edit_abell=

2.4.2 設定変数 edit_vbell (空/非空)

edit_vbell が非空文字列の場合、画面での通知が有効になります。 既定では画面での通知は無効になっています。

# 既定値
bleopt edit_vbell=

# 設定例 (有効にする場合)
bleopt edit_vbell=1

2.4.3 設定変数 vbell_default_message

設定 vbell_default_message は画面での通知で使用するメッセージ文字列を指定します。

# 既定値
bleopt vbell_default_message=' Wuff, -- Wuff!! '

# 設定例
bleopt vbell_default_message=' BEL '

2.4.4 設定変数 vbell_duration (算術式)

設定 vbell_duration は画面での通知を表示する時間の長さを指定します。単位はミリ秒です。

# 既定値
bleopt vbell_duration=2000

# 設定例
bleopt vbell_duration=3000

2.4.5 設定変数 vbell_align (v0.3)

画面での通知を表示する位置を指定します。left, center, right の何れかを指定します。

# 既定値
bleopt vbell_duration=right

# 設定例
bleopt vbell_duration=left

2.4.6 描画設定 vbell

画面での通知を表示する時の描画属性を指定します。

# 既定値
ble-color-setface vbell reverse

2.4.7 描画設定 vbell_flash

画面での通知を表示した瞬間の描画属性を指定します。

# 既定値
ble-color-setface vbell_flash reverse,fg=green

2.4.8 描画設定 vbell_erase

画面での通知を消去した後の描画属性を指定します。

# 既定値
ble-color-setface vbell_erase bg=252

[ 日本語 | English ] ≫ 説明書 [§1 基本 | §2 描画 | §3 束縛 | §4 編集 | §5 Emacs | §6 Vim | §7 補完 | §8 他]

Clone this wiki locally