239 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			239 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # 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" |