針對(duì)Bash的不完整路徑展開(kāi)(補(bǔ)全)功能
bash-complete-partial-path 通過(guò)添加不完整的路徑展開(kāi)(類(lèi)似于 Zsh)來(lái)增強(qiáng) Bash(它在 Linux 上,macOS 使用 gnu-sed,Windows 使用 MSYS)中的路徑補(bǔ)全。如果你想在 Bash 中使用這個(gè)省時(shí)特性,而不必切換到 Zsh,它將非常有用。
這是它如何工作的。當(dāng)按下 Tab
鍵時(shí),bash-complete-partial-path 假定每個(gè)部分都不完整并嘗試展開(kāi)它。假設(shè)你要進(jìn)入 /usr/share/applications
。你可以輸入 cd /u/s/app
,按下 Tab
,bash-complete-partial-path 應(yīng)該把它展開(kāi)成 cd /usr/share/applications
。如果存在沖突,那么按 Tab
僅補(bǔ)全沒(méi)有沖突的路徑。例如,Ubuntu 用戶(hù)在 /usr/share
中應(yīng)該有很多以 “app” 開(kāi)頭的文件夾,在這種情況下,輸入 cd /u/s/app
只會(huì)展開(kāi) /usr/share/
部分。
另一個(gè)更深層不完整文件路徑展開(kāi)的例子。在Ubuntu系統(tǒng)上輸入 cd /u/s/f/t/u
,按下 Tab
,它應(yīng)該自動(dòng)展開(kāi)為 cd /usr/share/fonts/truetype/ubuntu
。
功能包括:
- 轉(zhuǎn)義特殊字符
- 如果用戶(hù)路徑開(kāi)頭使用引號(hào),則不轉(zhuǎn)義字符轉(zhuǎn)義,而是在展開(kāi)路徑后使用匹配字符結(jié)束引號(hào)
- 正確展開(kāi)
~
表達(dá)式 - 如果正在使用 bash-completion 包,則此代碼將安全地覆蓋其
_filedir
函數(shù)。無(wú)需額外配置,只需確保在主 bash-completion 后引入此項(xiàng)目。
查看項(xiàng)目頁(yè)面以獲取更多信息和演示截圖。
安裝 bash-complete-partial-path
bash-complete-partial-path 安裝說(shuō)明指定直接下載 bash_completion 腳本。我更喜歡從 Git 倉(cāng)庫(kù)獲取,這樣我可以用一個(gè)簡(jiǎn)單的 git pull
來(lái)更新它,因此下面的說(shuō)明將使用這種安裝 bash-complete-partial-path。如果你喜歡,可以使用官方說(shuō)明。
1、 安裝 Git(需要克隆 bash-complete-partial-path 的 Git 倉(cāng)庫(kù))。
在 Debian、Ubuntu、Linux Mint 等中,使用此命令安裝 Git:
sudo apt install git
2、 在 ~/.config/
中克隆 bash-complete-partial-path 的 Git 倉(cāng)庫(kù):
cd ~/.config && git clone https://github.com/sio/bash-complete-partial-path
3、 在 ~/.bashrc
文件中 source ~/.config/bash-complete-partial-path/bash_completion
,
用文本編輯器打開(kāi) ~/.bashrc。例如你可以使用 Gedit:
gedit ~/.bashrc
在 ~/.bashrc
的末尾添加以下內(nèi)容(在一行中):
[ -s "$HOME/.config/bash-complete-partial-path/bash_completion" ] && source "$HOME/.config/bash-complete-partial-path/bash_completion"
我提到在文件的末尾添加它,因?yàn)檫@需要包含在你的 ~/.bashrc
文件的主 bash-completion 下面(之后)。因此,請(qǐng)確保不要將其添加到原始 bash-completion 之上,因?yàn)樗鼤?huì)導(dǎo)致問(wèn)題。
4、 引入 ~/.bashrc
:
source ~/.bashrc
這樣就好了,現(xiàn)在應(yīng)該安裝完 bash-complete-partial-path 并可以使用了。