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" |