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 的問題修復

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

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

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

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

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

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

相關網頁

作者: Tsung

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

發表迴響

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