# Claude Code Enhanced Shell Configuration # Source this file in your .zshrc: source ~/.zshrc_claude # 基本的なエイリアス alias c='claude' alias cr='claude --resume' alias ct='claude --thinking' alias cs='claude --dangerously-skip-permissions' # AI統合エイリアス alias ai-import='bash ~/git/claude/scripts/ai-integration.sh import' alias ai-compare='bash ~/git/claude/scripts/ai-integration.sh compare' alias ai-chain='bash ~/git/claude/scripts/ai-integration.sh chain' alias ai-tmux='bash ~/git/claude/scripts/ai-integration.sh tmux' # MCP関連エイリアス alias mcp-setup='bash ~/git/claude/mcp/setup-mcp.sh' alias mcp-test='bash ~/git/claude/mcp/setup-mcp.sh test' # 便利な関数群 # Claude Codeでファイルを解析 function claude-analyze() { local file="$1" if [[ -f "$file" ]]; then claude "このファイルを解析してください: @$file" else echo "ファイルが見つかりません: $file" fi } # Claude Codeでエラーを解決 function claude-debug() { local error_file="${1:-/tmp/last_error.log}" if [[ -f "$error_file" ]]; then claude "このエラーを解決してください: $(cat $error_file)" else echo "エラーファイルが見つかりません: $error_file" fi } # Claude Codeでコードレビュー function claude-review() { local target="${1:-.}" if [[ -d "$target" ]]; then # ディレクトリの場合、変更されたファイルをレビュー git diff --name-only | head -10 | while read file; do claude "このファイルの変更をレビューしてください: @$file" done elif [[ -f "$target" ]]; then # ファイルの場合、そのファイルをレビュー claude "このファイルをレビューしてください: @$target" else echo "ターゲットが見つかりません: $target" fi } # Claude Codeでドキュメント生成 function claude-docs() { local target="${1:-.}" claude "このプロジェクトのドキュメントを生成してください。プロジェクトの構造: $(tree -L 2 $target)" } # Claude Codeでテストケース生成 function claude-test() { local file="$1" if [[ -f "$file" ]]; then claude "このファイルのテストケースを生成してください: @$file" else echo "ファイルが見つかりません: $file" fi } # Claude Codeでリファクタリング function claude-refactor() { local file="$1" local instruction="${2:-コードを改善してください}" if [[ -f "$file" ]]; then claude "$instruction: @$file" else echo "ファイルが見つかりません: $file" fi } # 現在の作業状況をClaude Codeに伝える function claude-status() { local status_info=$(cat << EOF 現在の作業状況: - ディレクトリ: $(pwd) - ブランチ: $(git branch --show-current 2>/dev/null || echo "Git管理外") - 変更されたファイル: $(git status --porcelain 2>/dev/null | head -5) - 最新コミット: $(git log --oneline -1 2>/dev/null) - プロセス: $(ps aux | grep -E "(vim|tmux|docker)" | head -3) 何かお手伝いできることはありますか? EOF ) claude "$status_info" } # Claude Codeで環境設定 function claude-env() { local env_info=$(cat << EOF 現在の環境情報: - OS: $(uname -s) - アーキテクチャ: $(uname -m) - シェル: $SHELL - ターミナル: $TERM - エディタ: $EDITOR - Python: $(python3 --version 2>/dev/null || echo "インストールされていません") - Node.js: $(node --version 2>/dev/null || echo "インストールされていません") - Git: $(git --version 2>/dev/null || echo "インストールされていません") この環境での開発をサポートしてください。 EOF ) claude "$env_info" } # tmux統合 function claude-tmux() { local session_name="claude-work" # 既存のセッションをチェック if tmux has-session -t "$session_name" 2>/dev/null; then echo "既存のセッションにアタッチします..." tmux attach -t "$session_name" return fi # 新しいセッションを作成 tmux new-session -d -s "$session_name" -n "claude" "claude --resume" tmux new-window -t "$session_name" -n "editor" tmux new-window -t "$session_name" -n "terminal" tmux new-window -t "$session_name" -n "logs" "tail -f ~/.claude/logs/*.log 2>/dev/null || echo 'ログファイルが見つかりません'" # レイアウト設定 tmux select-window -t "$session_name:claude" tmux split-window -h -p 30 tmux send-keys -t "$session_name:claude.1" "echo 'Claude Code作業中...'" Enter echo "Claude Code作業用セッションを作成しました" tmux attach -t "$session_name" } # vim統合 function claude-vim() { local file="$1" if [[ -n "$file" ]]; then # ファイルが指定された場合、vimで開いてからClaude Codeに送る vim "$file" claude "先ほど編集したファイルについて質問があります: @$file" else # ファイルが指定されない場合、現在のディレクトリの情報を送る claude "現在のディレクトリで作業しています: $(pwd)\n$(ls -la)" fi } # 自動エラー捕捉 function claude-exec() { local cmd="$*" local error_file="/tmp/claude_error_$(date +%s).log" echo "実行中: $cmd" # コマンドを実行し、エラーをキャプチャ if ! eval "$cmd" 2>"$error_file"; then echo "エラーが発生しました。Claude Codeに解決を依頼します..." claude "次のコマンドでエラーが発生しました: $cmd\n\nエラー内容:\n$(cat $error_file)" rm -f "$error_file" else echo "コマンドが正常に完了しました" rm -f "$error_file" fi } # プロジェクト初期化 function claude-init() { local project_name="$1" local project_type="${2:-general}" if [[ -z "$project_name" ]]; then echo "使用方法: claude-init <プロジェクト名> [プロジェクトタイプ]" return 1 fi mkdir -p "$project_name" cd "$project_name" # CLAUDE.mdを作成 cat > CLAUDE.md << EOF # CLAUDE.md This file provides guidance to Claude Code when working with this project. ## Project: $project_name Type: $project_type Created: $(date) ## Development Guidelines - Follow best practices for $project_type development - Maintain consistent code style - Write comprehensive tests - Document all public APIs ## Commands [Add common commands here] ## Architecture [Add architecture notes here] EOF # Git初期化 git init echo "CLAUDE.md" > .gitignore echo "*.log" >> .gitignore echo ".DS_Store" >> .gitignore # Claude Codeを起動 claude "新しいプロジェクト '$project_name' ($project_type) を初期化しました。開発を開始するのを手伝ってください。" } # 補完設定(zsh) if [[ -n "$ZSH_VERSION" ]]; then # カスタム補完 compdef '_files' claude-analyze compdef '_files' claude-review compdef '_files' claude-test compdef '_files' claude-refactor compdef '_files' claude-vim fi # 起動メッセージ echo "🤖 Claude Code enhanced shell configuration loaded!" echo "主要コマンド: c, cr, ct, cs, claude-analyze, claude-review, claude-test" echo "詳細: alias | grep claude"