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 の設定をロードする箇所でも、同様のガード条件を入れました。