Bashから「単語」を削除すると、_
同じ特定の文字で停止します/
。たとえば、私が入力した場合
/foo/bar
有効にされbackward-kill-word
(通常Alt-Backspaceおよび/またはCtrl- にマップされますw)、残りのテキストは次のようになります。
/foo/
。これは実際にいいえに該当する$COMP_WORDBREAKS
かreadline
~のrl_completer_word_break_characters
。単語の分割を決定するために使用される文字をどのように検出しますか(コードのデフォルト値ではなく上書きされる可能性があるため、実行中のシステムで優先)。
ベストアンサー1
Bash ドキュメントには次のように記載されています。
backward-kill-word (M-Rubout)
ドットの後ろにある単語を殺してください。単語の境界は、逆方向の単語に使用されるものと同じです。
そして
backward-word (M-b)
現在または前の単語の先頭に戻ります。単語は英数字(文字と数字)で構成されています。
Bash 4.2での処理はバンドルされているbackward-word
libreadlineコード(text.c:rl_backward_word
)。仮説は以下に基づいています。rl_alphabetic
、それ自体は次に依存します。isalnum
機能。これはロケールによって異なりますが、bashで直接設定することはできません。
shell-forward-word
Bash 4.0では、ANDshell-backward-word
演算(および同等のKill演算)を含む別の「単語」タイプが導入されました。これはシェルメタ文字(()<>;&|"
)とスペース(ロケール依存関係によって可能isblank
)でのみ中断され、デフォルトのbashline.c
bashコード()で処理されます。