.bashrc 下設定 command alias 的方法是:
alias svm='svn' # 我常常手殘
不過假設要 alias 的指令包含空白,如「svn commit」要 alias 成「svn commit –editor-cmd vim」,就得靠自訂 function 了。
新增一個 function 蓋掉原本的 svn 指令,如果 svn 後接的參數是 commit,便加上 –editor-cmd:
svn(){
if [[ $@ == commit ]]; then
command svn commit --editor-cmd vim
else
command svn "$@"
fi
}
不過 svn commit 有時還會有其他參數,像是檔案路徑等,所以這樣寫還是會發生意外。要把參數判斷要改,順便在執行指令的時候把參數也塞回去:
svn(){
if [[ $@ == commit* ]] || [[ $@ == ci* ]]; then
command svn "$@" --editor-cmd vim
else
command svn "$@"
fi
}