bashrc 内で bind を使うとリモートからコマンド実行時に警告が出る
peco などを快適に使うために ~/.bashrc
内で bind コマンド*1を使って、キーバインドをカスタマイズしています。
このとき ssh $host "コマンド"
のようにリモートからコマンドを実行すると、 ~/.bashrc
から bind を実行する行で、下のような警告が出ます:
/home/key-amb/.bashrc: line 30: bind: warning: line editing not enabled
解決策
この警告は TTY が有効でないことに由来するようです。
例えば、下のスレッドに回答があります:
自分の ~/.bashrc
で peco の設定をロードしている箇所では、次のようにしました:
if which peco >& /dev/null && [[ -t 1 ]]; then # setup functions and key binds for peco # : fi
test -t 1
で、標準出力が端末でオープンされているかチェックできます。
See Also
※ enhancd の設定をロードする箇所でも、同様のガード条件を入れました。