Skip to content

volta completions

シェル補完スクリプトを生成します。

使用法

bash
volta completions <シェ>

引数

<シェル>

補完スクリプトを生成するシェル。以下がサポートされています:

  • bash - Bash シェル
  • zsh - Zsh シェル
  • fish - Fish シェル
  • powershell - PowerShell
  • elvish - 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 "補完設定が完了しました"

関連コマンド

ベストプラクティス

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 "設定完了!新しいターミナルで有効になります。"