![]()
標題の挙動に悩まされていました。
補完でhoge (hoge<space>)を入力し、カーソルが^の位置にある状態。
% cat hoge
^
ここで|を入力するとスペースが消えてhogeとくっついてしまう。
% cat hoge|
^
こうなってほしい。
% cat hoge |
^
解決法
ZLE_REMOVE_SUFFIX_CHARSで、直前のスペースが削除される文字を指定できる。デフォルトは$' \t\n;&|'なので、パイプを外すには.zshrcにこう書く。
ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&'
すべての文字でこの挙動を無効にするには空にすればよい。
ZLE_REMOVE_SUFFIX_CHARS=
$''はANSI-Cクォート。