add
This commit is contained in:
239
shell-config/.zshrc_claude
Normal file
239
shell-config/.zshrc_claude
Normal file
@ -0,0 +1,239 @@
|
||||
# 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"
|
Reference in New Issue
Block a user