Linux Bash 出現 bind: warning: line editing not enabled 的問題修復

於 Linux 的 Bash shell 依照此篇文章「Bash 使用 Tab 自動完成 檔案或目錄的輸入」的做法,使用 bind 來做些設定,但是在 scp 到這台 server 時,就會出現下述警告訊息:

bind: warning: line editing not enabled

要如何避免這個訊息呢?

Linux Bash 出現 bind: warning: line editing not enabled 的問題修復

有幾種方式可以解決這個問題,下述先列兩種:

iatest=$(expr index "$-" i)
if [[ $iatest > 0 ]]; then
   bind ...
fi

if [[ $- =~ i ]]; then
   bind ...
fi

將此段加入 .bashrc 的完整範例如下:

if [[ $- =~ i ]]; then
    # 自動補齊 / 自動完成 [Tab] 和 [Shift-Tab]
    set show-all-if-ambiguous on
    bind '"\e[Z":menu-complete'
    bind 'TAB:complete' # 使用 Shift-Tab 維持原本 Tab 反應
fi

加完後就不會再有警告訊息囉~

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料