Files
claude/shell-config/.zshrc_claude
2025-07-05 13:48:50 +09:00

239 lines
7.4 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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