2014年12月3日 星期三

[Bash] bash_completion - 命令強迫補完計畫 (?

沒有計畫~ 只有... 搗蛋

最近幾版的 Ubuntu lubuntu  的兔兔娘... command line 跑起來頗靈異

當發生
make <tab> <tab> 連按很多下會看到

--
root@bbG:~# make 23:set: command not found
23:set: command not found
--
原本是預期看到 /path/to/some/where


那是因為shell 試圖幫你補完make 子項命令


例如 svn <tab> <tab>

root@bbG:~# svn <tab/tab>
add checkout commit export info merge patch praise propset resolve switch annotate ci copy -h list mergeinfo pdel propdel pset resolved unlock blame cl cp help lock mkdir pedit propedit relocate revert update cat cleanup delete --help log move pget propget remove rm upgrade changelist co diff import ls mv plist proplist rename status --version

被觸發的檔案位置

/etc/profile <--- 可以看到 --> /etc/profile.d/bash_completion.sh

會被執行

註解 bash_completion.sh 裡面的內容就好

這裡
/etc/bash.bashrc

也有歷史遺跡,有被註解起來,還好沒被打開。

--
這其實有機會帶來很方便的指令補完能力,可惜實際上使用習慣的差異,跟舊習慣延伸出來的竅門
例如:
# make packages/bejo_all  --> 對 bejo 這包package 作 make all 動作

tab 就變得不必要是補完指令了。

--
還是得說... 順手的工作環境,會讓自己舒暢一點。(完畢)