題 Bash中不區分大小寫的製表符


有沒有辦法讓Bash標籤完全不區分?

$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
Copyright (C) 2007 Free Software Foundation, Inc.

我使用的是Mac OS X 10.6


131
2018-01-01 20:02


起源




答案:


更新文本 /etc/inputrc 包括

設置完成 - 忽略 - 案例

然後用 ^X ^R 重新加載配置。


157
2018-01-01 20:39



“還有” - /etc/inputrc 要么 ~/.inputrc 或由...指定的文件 INPUTRC 它是唯一可以去的地方。在Bash提示下輸入該內容將不起作用。 - Dennis Williamson
哎呦!你是對的 :) - John T
^X ^R 重新加載 inputrc - grawity
@DennisWilliamson:你可以做到 bind "set completion-ignore-case on" 從命令行;因為,我相信,只有終端會議 - Clay Bridges
所以 那是 msysgit有什麼,但MSYS2缺乏!在這裡,我試圖在例如/ etc / profile ... - SamB


通過後見之明的重組進行重組,以對比使用的利弊 [.]inputrc 與 .bash_profile
小費的提示 underscore_d 為了他的幫助。

注意: Bash中的命令行編輯由Readline庫提供;定制它是非常重要的,但值得學習;它的功能包括定義用於插入預定義文本片段的自定義鍵盤快捷鍵的功能 - 請參閱 命令行編輯 在Bash參考手冊中

一貫 在Bash中使tab-completion不區分大小寫:


選項A: 如果您已經擁有:

  • 一個 /etc/inputrc 文件(適用於整個系統,修改需要 sudo
  • 和/或a ~/.inputrc 文件(特定於用戶)

    和/或

您計劃廣泛地自定義readline庫和/或希望使自定義有效 腳本 他們打電話的時候也是 read -e

添加行

set completion-ignore-case on

 文件,取決於您是否希望設置生效 所有 用戶還是 當前 user(如有必要,創建文件)。

使文件和目錄名稱更容易完成的相關命令是:

set show-all-if-ambiguous on

這使得無需按Tab鍵 兩次 當有多個比賽時。


選項B: 或者,您可以將Readline命令添加到特定於用戶的命令中 ~/.bash_profile OS X上的文件(或 ~/.bashrc 在Linux上),將它們作為一個傳遞給它  爭論的 bind 內置

bind "set completion-ignore-case on"
bind "set show-all-if-ambiguous on"

注意 bind 命令 ~/.bash_profile / ~/.bashrc 優先於其中的等效命令 /etc/inputrc 要么 ~/.inputrc

如上所述,Readline配置以這種方式定義  生效 腳本 那個電話 read -e 激活Readline支持讀取用戶輸入。


102
2018-06-11 05:02



show-all-if-ambiguous太棒了!我經常想知道為什麼他們兩次讓我做標籤來執行這個動作。在我的未來保存了數以千計的擊鍵!謝謝! - user34112
太棒了,它甚至適用於 cd命令。哪個解決了 這個問題 並且也將為我節省數千次擊鍵。 :) - hoosierEE
偉大的重點 show-all-if-ambiguous。但是,既然你說“作為替代方案”,通過這樣做實際上是否有任何好處 bind, 當。。。的時候 inputrc 文件似乎讓那個不必要? - underscore_d
@underscore_d:好問題;請看我更新的答案。 - mklement0
很酷,謝謝!在Debian 8.2上,我沒有 inputrc,但我很開心 ~/.inputrc 並添加了這些,以及其他非常有用的指令。我想我們假設所有讀者都知道這一點 /etc/inputrc  影響其他用戶(除非後者覆蓋受影響的設置)?就在我們提到警告的時候;) - underscore_d


要避免更改所有用戶的配置並避免root權限,請使用以下命令:

if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi
echo 'set completion-ignore-case on' >> ~/.inputrc

然後重新登錄或重新加載〜/ .inputrc


1
2018-04-08 04:52