volta completions
シェル補完スクリプトを生成します。
使用法
bash
volta completions <シェル>
引数
<シェル>
補完スクリプトを生成するシェル。以下がサポートされています:
bash
- Bash シェルzsh
- Zsh シェルfish
- Fish シェルpowershell
- PowerShellelvish
- Elvish シェル
例
Bash
bash
# Bash補完スクリプトを生成
volta completions bash
# Bash補完を有効にする
volta completions bash > /etc/bash_completion.d/volta
# または、ユーザーレベルで有効にする
volta completions bash >> ~/.bashrc
Zsh
bash
# Zsh補完スクリプトを生成
volta completions zsh
# Zsh補完を有効にする(Oh My Zshを使用している場合)
volta completions zsh > ~/.oh-my-zsh/completions/_volta
# または、fpath に追加
mkdir -p ~/.zsh/completions
volta completions zsh > ~/.zsh/completions/_volta
echo 'fpath=(~/.zsh/completions $fpath)' >> ~/.zshrc
echo 'autoload -U compinit && compinit' >> ~/.zshrc
Fish
bash
# Fish補完スクリプトを生成
volta completions fish
# Fish補完を有効にする
volta completions fish > ~/.config/fish/completions/volta.fish
PowerShell
powershell
# PowerShell補完スクリプトを生成
volta completions powershell
# PowerShellプロファイルに追加
volta completions powershell >> $PROFILE
Elvish
bash
# Elvish補完スクリプトを生成
volta completions elvish
# Elvish補完を有効にする
volta completions elvish > ~/.elvish/lib/volta.elv
設定方法
自動設定
Voltaインストール時にvolta setup
を実行すると、多くのシェルで補完が自動的に設定されます。
手動設定
Bash
bash
# システム全体で有効にする場合
sudo volta completions bash > /etc/bash_completion.d/volta
# ユーザーのみで有効にする場合
echo 'source <(volta completions bash)' >> ~/.bashrc
Zsh
bash
# Oh My Zshを使用している場合
volta completions zsh > ~/.oh-my-zsh/completions/_volta
# 標準的なZsh設定の場合
mkdir -p ~/.zsh-functions
volta completions zsh > ~/.zsh-functions/_volta
echo 'fpath=(~/.zsh-functions $fpath)' >> ~/.zshrc
echo 'autoload -U compinit && compinit' >> ~/.zshrc
Fish
bash
# Fish補完ディレクトリに配置
volta completions fish > ~/.config/fish/completions/volta.fish
補完機能
コマンド補完
bash
volta <Tab>
# 利用可能なコマンド: install, uninstall, pin, list, which, run, etc.
サブコマンド補完
bash
volta install <Tab>
# 利用可能なツール: node, npm, yarn, pnpm
volta install node<Tab>
# 利用可能なNodeバージョン: 16.14.2, 18.17.0, 20.5.0, latest, lts
オプション補完
bash
volta install --<Tab>
# 利用可能なオプション: --verbose, --quiet, --help
パス補完
bash
volta run --node 18 <Tab>
# 実行可能ファイルとスクリプトが補完される
トラブルシューティング
補完が動作しない
Bash
bash
# bash-completionがインストールされているか確認
brew install bash-completion # macOS
sudo apt install bash-completion # Ubuntu/Debian
# .bashrcに以下を追加
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
# 補完を再読み込み
source ~/.bashrc
Zsh
bash
# compinit が有効になっているか確認
autoload -U compinit && compinit
# 補完キャッシュをクリア
rm -f ~/.zcompdump*
compinit
# .zshrcを再読み込み
source ~/.zshrc
Fish
bash
# Fish補完ファイルが正しい場所にあるか確認
ls ~/.config/fish/completions/volta.fish
# Fish設定を再読み込み
source ~/.config/fish/config.fish
権限エラー
bash
# システムディレクトリへの書き込み権限がない場合
sudo volta completions bash > /etc/bash_completion.d/volta
# ユーザーディレクトリを使用
volta completions bash > ~/.local/share/bash-completion/completions/volta
古い補完スクリプト
bash
# 古い補完スクリプトを削除
rm /etc/bash_completion.d/volta
rm ~/.oh-my-zsh/completions/_volta
# 新しいスクリプトを生成
volta completions bash > ~/.local/share/bash-completion/completions/volta
高度な設定
カスタム補完
独自の補完ロジックを追加したい場合:
bash
# 基本的な補完スクリプトを生成
volta completions bash > ~/.volta-completions.bash
# カスタムロジックを追加
cat >> ~/.volta-completions.bash << 'EOF'
# カスタム補完ロジック
_volta_custom() {
# 独自の補完を実装
}
EOF
# .bashrcで読み込み
echo 'source ~/.volta-completions.bash' >> ~/.bashrc
複数シェルでの設定
bash
#!/bin/bash
# setup-volta-completions.sh
# 現在のシェルを検出
case "$SHELL" in
*/bash)
volta completions bash > ~/.local/share/bash-completion/completions/volta
echo "Bash補完を設定しました"
;;
*/zsh)
mkdir -p ~/.zsh-functions
volta completions zsh > ~/.zsh-functions/_volta
echo "Zsh補完を設定しました"
;;
*/fish)
mkdir -p ~/.config/fish/completions
volta completions fish > ~/.config/fish/completions/volta.fish
echo "Fish補完を設定しました"
;;
*)
echo "サポートされていないシェル: $SHELL"
;;
esac
パフォーマンス最適化
補完の高速化
bash
# Zshでの補完キャッシュ設定
echo 'zstyle ":completion:*" use-cache on' >> ~/.zshrc
echo 'zstyle ":completion:*" cache-path ~/.zsh/cache' >> ~/.zshrc
# 補完の遅延読み込み
echo 'autoload -Uz compinit' >> ~/.zshrc
echo 'compinit -d ~/.zcompdump-$ZSH_VERSION' >> ~/.zshrc
補完データの更新
bash
# 補完データを定期的に更新するスクリプト
#!/bin/bash
# update-volta-completions.sh
SHELL_TYPE=$(basename "$SHELL")
case "$SHELL_TYPE" in
bash)
volta completions bash > ~/.local/share/bash-completion/completions/volta
;;
zsh)
volta completions zsh > ~/.zsh-functions/_volta
;;
fish)
volta completions fish > ~/.config/fish/completions/volta.fish
;;
esac
echo "Volta補完を更新しました ($SHELL_TYPE)"
CI/CDでの活用
自動化された補完設定
yaml
# .github/workflows/setup-dev-env.yml
name: Setup Development Environment
on:
workflow_dispatch:
jobs:
setup-completions:
runs-on: ubuntu-latest
steps:
- name: Install Volta
run: curl https://get.volta.sh | bash
- name: Setup Bash completions
run: |
mkdir -p ~/.local/share/bash-completion/completions
~/.volta/bin/volta completions bash > ~/.local/share/bash-completion/completions/volta
- name: Verify completions
run: |
source ~/.local/share/bash-completion/completions/volta
echo "補完設定が完了しました"
関連コマンド
volta setup
- Voltaの初期設定(補完設定を含む)volta help
- ヘルプ情報の表示
ベストプラクティス
1. 定期的な更新
bash
# 毎月補完スクリプトを更新
0 0 1 * * volta completions bash > ~/.local/share/bash-completion/completions/volta
2. バックアップの作成
bash
# 現在の補完設定をバックアップ
cp ~/.local/share/bash-completion/completions/volta ~/.volta-completions.backup
3. チーム共有
bash
# チーム用の補完設定スクリプト
#!/bin/bash
# team-volta-setup.sh
echo "Volta補完を設定中..."
volta completions "$(basename "$SHELL")" > ~/.volta-completions
echo "source ~/.volta-completions" >> ~/.bashrc
echo "設定完了!新しいターミナルで有効になります。"