Skip to content

Shell 整合

BCMR 提供類似 zoxide 的 shell 整合。你可以建立帶自訂前綴、後綴的別名,或完全替換原生命令。

設定

在 shell 設定檔中加入以下內容:

bash
# 使用 'b' 前綴 → bcp, bmv, brm
eval "$(bcmr init zsh --cmd b)"
bash
# 使用 'b' 前綴 → bcp, bmv, brm
eval "$(bcmr init bash --cmd b)"
fish
# 使用 'b' 前綴 → bcp, bmv, brm
bcmr init fish --cmd b | source

選項

參數說明
--cmd <前綴>設定命令前綴(如 b 建立 bcpbmvbrm
--prefix <前綴>顯式設定前綴(覆寫 --cmd
--suffix <後綴>設定命令後綴
--no-cmd不建立命令別名
--path <路徑>新增目錄到 PATH

範例

bash
# 替換原生命令(建立 cp, mv, rm)
eval "$(bcmr init zsh --cmd '')"

# 自訂前綴(建立 testcp, testmv, testrm)
eval "$(bcmr init zsh --cmd test)"

# 前綴 + 後綴(建立 pcp+, pmv+, prm+)
eval "$(bcmr init zsh --cmd --prefix p --suffix +)"

支援的 Shell

  • Bash
  • Zsh
  • Fish

Shell 補全

BCMR 透過 bcmr completions 提供所有命令和參數的 tab 補全。

bash
# 加入 ~/.zshrc
eval "$(bcmr completions zsh)"

# 或產生到 fpath(啟動更快)
bcmr completions zsh > ~/.zfunc/_bcmr
# 確保 ~/.zshrc 中有: fpath=(~/.zfunc $fpath)
bash
# 加入 ~/.bashrc
eval "$(bcmr completions bash)"

# 或產生到系統補全目錄
bcmr completions bash > /etc/bash_completion.d/bcmr
fish
bcmr completions fish > ~/.config/fish/completions/bcmr.fish
powershell
# 如果 profile 目錄不存在則先建立,再追加
New-Item -Path (Split-Path $PROFILE) -ItemType Directory -Force | Out-Null
bcmr completions powershell >> $PROFILE

# 或僅在目前工作階段載入
bcmr completions powershell | Out-String | Invoke-Expression

設定後即可 tab 補全命令和參數:

bcmr co<TAB>       → bcmr copy
bcmr copy -<TAB>   → --recursive --preserve --force --verify ...

別名補全(Zsh)

使用 bcmr init zsh --cmd <前綴> 時,別名命令(如 bcpbmvbrm)的補全會自動包含,無需額外設定。只需確保 ~/.zshrc 中同時有:

bash
eval "$(bcmr init zsh --cmd b)"
eval "$(bcmr completions zsh)"

之後即可直接對別名命令進行 tab 補全:

bcp -<TAB>   → --recursive --preserve --force --verify ...
bmv -<TAB>   → --recursive --preserve --force --verify ...

Released under the GPL-3.0 License.