Bash
如何製作保留製表符補全的別名或函式?
我創建了一個別名來節省一些使用 systemd 的擊鍵:
$ alias sctl='systemctl'
但是,這會中斷子命令的選項卡完成。是否可以在不中斷製表符完成的情況下給命令起別名?
首先找出
systemctl
命令使用的完整功能:complete | grep " systemctl$"
輸出如下所示:
complete -F _functionname systemctl
然後使用:
complete -F _functionname sctl
為完成你的別名註冊功能。
現在,當您輸入
sctl <tab><tab>
時,將出現與您輸入時相同的建議systemctl
。
安裝此工具後,您可以這樣做:
- 在
~/.bash_profile
:alias sctl='systemctl'
- 在
~/.bash_completion
:complete -F _complete_alias sctl
- 鍵入
sctl <tab>
以顯示systemctl
命令:$ sctl <Tab> add-requires add-wants cancel cat condreload ...