https://github.com/takapi327/dotfiles
https://github.com/takapi327/dotfiles
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/takapi327/dotfiles
- Owner: takapi327
- Created: 2020-06-07T13:31:41.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-04-30T11:16:03.000Z (about 5 years ago)
- Last Synced: 2025-02-07T08:29:22.713Z (over 1 year ago)
- Language: Vim script
- Size: 240 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# M1 Mac Dotfiles
Neovim + iTerm2 + Claude Code向けの効率的な開発環境設定ファイル集です。
## 特徴
- 🚀 M1 Mac最適化済み
- 🎨 Gruvboxカラーテーマ
- ⚡ Neovim (vim-plug)
- 🔧 既存のzsh設定を保持
- 🤖 Claude Code統合(`cc`エイリアス)
- 📦 自動インストールスクリプト付き
## クイックスタート
```bash
git clone https://github.com/yourusername/dotfiles.git ~/Development/dotfiles
cd ~/Development/dotfiles
./install.sh
```
## 含まれる設定
### Neovim設定 (`.vimrc` → `~/.config/nvim/init.vim`)
- **プラグイン管理**: vim-plug
- **ファイルエクスプローラー**: NERDTree
- **ファジーファインダー**: fzf.vim
- **Git統合**: fugitive, gitgutter
- **自動補完**: CoC.nvim
- **シンタックスハイライト**: vim-polyglot
- **Linting**: ALE
### Zsh設定 (`.zshrc`, `.zprofile`)
- **テーマ**: Powerlevel9k (Nerd Font対応、公式Git cloneインストール)
- **プラグイン**: git, zsh-syntax-highlighting, zsh-autosuggestions
- **パッケージマネージャー**: Homebrew, pyenv, nodenv, rbenv対応
- **エイリアス**:
- Git shortcuts
- Claude Code (`claude`)
- Docker (`dps`, `dimg`, `dc`, `ld`等)
**注意**: Powerlevel9kは2020年にアーカイブされましたが、安定版として使用可能です。
### iTerm2設定
- **カラースキーム**: Gruvbox Dark
- **フォント**: MesloLGS Nerd Font
- **キーバインド**: 最適化済み
### Docker
- **Docker Desktop**: 自動インストール
- **Docker CLI ツール**: docker-compose, lazydocker
- **コンテナ分析ツール**: dive
- **Zsh補完**: Docker/docker-compose用の自動補完
### 生産性向上ツール
- **Claude Code**: AI統合開発環境
- **DeepL**: 高精度翻訳アプリ
## 必要な環境
- macOS (M1/M2 Mac推奨)
- Git(通常はmacOSに標準インストール済み)
※ Homebrew、iTerm2は install.sh で自動インストールされます
## 含まれる開発環境
### プログラミング言語
- **Python**: pyenv + pyenv-virtualenvで複数バージョン管理
- **Node.js**: nodenvで管理
- **Ruby**: rbenvで管理
- **Scala**: sbt + Coursier + Metals
- **Go**: 公式インストーラー
### 開発ツール
- **エディタ**: Neovim (vim-plug)
- **ターミナル**: iTerm2 + Zsh (Powerlevel9k)
- **コンテナ**: Docker Desktop + lazydocker
- **Git**: gh CLI + fugitive (Vim統合)
- **AWS**: AWS CLI + SAM CLI
- **データベース**: MySQL Shell
## インストール後の設定
1. ターミナルを再起動するか `source ~/.zshrc` を実行
2. iTerm2でプロファイルをインポート:
- Preferences → Profiles → Import JSON Profiles...
- `iterm2/profiles.json`を選択
3. 必要に応じて言語固有のツールをインストール
## Neovim設定と使用方法
### インストールされるプラグイン
| カテゴリ | プラグイン | 説明 |
|--------------|----------------|-------------------------------|
| ファイルエクスプローラー | NERDTree | サイドバーでファイル管理 |
| ファジーファインダー | fzf.vim | 高速ファイル検索 |
| Git統合 | fugitive | Gitコマンドの実行 |
| Git統合 | gitgutter | 行ごとのGit差分表示 |
| 自動補完 | CoC.nvim | LSP対応のインテリセンス |
| TypeScript開発 | typescript-vim | TypeScript構文ハイライト |
| TypeScript開発 | yats.vim | Yet Another TypeScript Syntax |
| JavaScript開発 | vim-javascript | モダンJS構文サポート |
| Svelte開発 | vim-svelte | Svelte構文ハイライト・インデント |
| Svelte開発 | vim-svelte-plugin | 高機能Svelte構文プラグイン |
| Svelte開発 | context_filetype.vim | コンテキスト別処理 |
| Svelte開発 | nerdcommenter | Svelte対応コメント機能 |
| Svelte開発 | vim-prettier | Prettier統合フォーマッター |
| Scala開発 | nvim-metals | Scala LSP (Metals) 統合 |
| Scala開発 | vim-scala | Scalaシンタックス・インデント |
| デバッグ | nvim-dap | デバッグアダプタープロトコル対応 |
| デバッグ | nvim-dap-ui | デバッグUI |
| ファイル検索 | telescope | 高機能ファジーファインダー |
| テストランナー | neotest | 統合テストランナー |
| シンタックス | vim-polyglot | 多言語シンタックスハイライト |
| Linting | ALE | 自動エラーチェック・フォーマット |
| ステータスライン | airline | 拡張ステータスライン |
| 編集補助 | commentary | コメント切り替え |
| 編集補助 | surround | 括弧・クォート操作 |
| 編集補助 | auto-pairs | 括弧の自動閉じ |
| その他 | vim-devicons | ファイルアイコン表示 |
### 主要なキーバインド
**リーダーキー**: `Space` (Neovim)
#### ファイル操作
| キー | 動作 | 説明 |
|-------------|-------------|---------------------|
| `n` | NERDTreeトグル | ファイルエクスプローラーの表示/非表示 |
| `nf` | NERDTreeで検索 | 現在のファイルをツリーで表示 |
| `f` | ファイル検索 | fzfでファイル名検索 |
| `g` | 内容検索 | ripgrepでファイル内容検索 |
| `b` | バッファ一覧 | 開いているバッファを表示 |
| `h` | 履歴 | 最近開いたファイル一覧 |
#### ウィンドウ・バッファ操作
| キー | 動作 | 説明 |
|----------------|---------|----------------|
| `Ctrl+h/j/k/l` | ウィンドウ移動 | 左/下/上/右のウィンドウへ |
| `bp` | 前のバッファ | 前のバッファへ移動 |
| `bn` | 次のバッファ | 次のバッファへ移動 |
| `bd` | バッファ削除 | 現在のバッファを閉じる |
#### 編集操作
| キー | 動作 | 説明 |
|------------------|---------|--------------|
| `w` | 保存 | ファイルを保存 |
| `q` | 終了 | Vimを終了 |
| `wq` | 保存して終了 | 保存してVimを終了 |
| `` | ハイライト解除 | 検索ハイライトをクリア |
| `gcc` | コメント切替 | 行コメントのON/OFF |
| `gc{motion}` | 範囲コメント | 選択範囲をコメント化 |
#### コード補完・ナビゲーション(CoC.nvim)
| キー | 動作 | 説明 |
|-------------|---------|--------------|
| `Tab` | 補完選択 | 次の補完候補を選択 |
| `Shift+Tab` | 逆補完選択 | 前の補完候補を選択 |
| `Enter` | 補完確定 | 選択した補完を確定 |
| `gd` | 定義へジャンプ | 変数/関数の定義位置へ |
| `gr` | 参照検索 | 変数/関数の使用箇所一覧 |
| `K` | ドキュメント | ホバードキュメント表示 |
#### Git操作(fugitive)
| コマンド | 動作 | 説明 |
|---------------|---------|------------------|
| `:Git` / `:G` | ステータス | git statusを表示 |
| `:Gwrite` | ステージ | git add(現在のファイル) |
| `:Gcommit` | コミット | git commit画面を開く |
| `:Gpush` | プッシュ | リモートへプッシュ |
| `:Gdiff` | 差分表示 | 現在のファイルの差分 |
| `:Gblame` | blame表示 | 行ごとの変更履歴 |
#### Scala開発(Metals)
| キー | 動作 | 説明 |
|-------------|------------|----------------------------|
| `si` | ビルドインポート | sbtプロジェクトをインポート |
| `sb` | ビルド接続 | ビルドサーバーに接続 |
| `sc` | コンパイル | カスケードコンパイル実行 |
| `sr` | サーバー再起動 | Metalsサーバーを再起動 |
| `so` | import整理 | 未使用importの削除・整理 |
| `mc` | コンパイル | プロジェクト全体をコンパイル |
| `mi` | 暗黙引数表示 | 暗黙的な引数の表示切替 |
| `md` | 診断 | Metalsの診断情報を表示 |
| `mw` | ワークシート | ワークシートのホバー情報 |
| `fm` | Metalsコマンド | Telescope経由でMetalsコマンド一覧表示 |
#### デバッグ(nvim-dap)
| キー | 動作 | 説明 |
|--------------|----------|----------------|
| `dt` | ブレークポイント | ブレークポイントの設定/解除 |
| `dc` | デバッグ開始 | デバッグセッションを開始 |
| `dr` | REPL起動 | デバッグREPLを開く |
| `dK` | 変数確認 | カーソル位置の変数値を表示 |
| `dso` | ステップオーバー | 次の行へ進む |
| `dsi` | ステップイン | 関数内に入る |
| `dl` | 最後のデバッグ | 前回のデバッグ設定で再実行 |
#### Telescope検索
| キー | 動作 | 説明 |
|-------------|----------|-----------------|
| `ff` | ファイル検索 | プロジェクト内のファイル検索 |
| `fg` | 内容検索 | ファイル内容を横断検索 |
| `fb` | バッファ検索 | 開いているバッファから検索 |
| `fh` | ヘルプ検索 | Vimヘルプを検索 |
### カラーテーマ
Gruvbox Darkテーマが適用されています。変更する場合は`~/.config/nvim/init.vim`の`colorscheme gruvbox`を編集してください。
### 言語別設定
| 言語 | タブ設定 | フォーマッター | その他 |
|-----------------------|-------|--------------|--------------------|
| Python | スペース4 | black, isort | flake8, pylint |
| Ruby | スペース2 | rubocop | solargraph LSP |
| Go | ハードタブ | gofmt | rustc |
| JavaScript/TypeScript | スペース2 | Prettier | ESLint |
| Rust | スペース2 | rustfmt | rustc |
| Scala | スペース2 | scalafmt | Metals LSP, scalac |
| Markdown | スペース2 | - | 自動改行、プレビュー対応 |
| その他 | スペース2 | - | デフォルト設定 |
### Python開発環境のセットアップ(pyenv)
#### 1. pyenvの基本的な使い方
```bash
# インストール可能なPythonバージョンを確認
pyenv install --list
# 特定のバージョンをインストール
pyenv install 3.11.7
# グローバルバージョンを設定
pyenv global 3.11.7
# プロジェクト固有のバージョンを設定
cd /path/to/project
pyenv local 3.10.13
# 現在のバージョンを確認
pyenv version
# インストール済みバージョン一覧
pyenv versions
```
#### 2. 仮想環境の作成(pyenv-virtualenv)
```bash
# 仮想環境を作成
pyenv virtualenv 3.11.7 myproject-env
# 仮想環境をアクティベート
pyenv activate myproject-env
# 仮想環境をディアクティベート
pyenv deactivate
# プロジェクトディレクトリに自動アクティベート設定
cd /path/to/project
pyenv local myproject-env
```
#### 3. インストール済みのPython開発ツール
- **pip**: パッケージ管理
- **pipenv**: 依存関係管理
- **poetry**: モダンな依存関係管理
- **black**: コードフォーマッター
- **flake8**: リンター
- **pylint**: 高度なリンター
- **mypy**: 型チェッカー
### Ruby開発環境のセットアップ(rbenv)
#### 1. rbenvの基本的な使い方
```bash
# インストール可能なRubyバージョンを確認
rbenv install --list
# 特定のバージョンをインストール
rbenv install 3.2.3
# グローバルバージョンを設定
rbenv global 3.2.3
# プロジェクト固有のバージョンを設定
cd /path/to/project
rbenv local 3.0.6
# 現在のバージョンを確認
rbenv version
# インストール済みバージョン一覧
rbenv versions
# シムの再構築(新しいgemをインストール後)
rbenv rehash
```
#### 2. Gemの管理
```bash
# Bundlerを使用したプロジェクトセットアップ
gem install bundler
bundle init
# Gemfileに依存関係を追加後
bundle install
# プロジェクト内でgemを実行
bundle exec rails server
```
#### 3. インストール済みのRuby開発ツール
- **bundler**: Gem依存関係管理
- **rails**: Webフレームワーク
- **rubocop**: コードスタイルチェッカー
- **solargraph**: Language Server(VSCode/Vim用)
- **pry**: 高機能REPL/デバッガ
- **rspec**: テストフレームワーク
### Node.js開発環境のセットアップ(nodenv)
#### 1. nodenvの基本的な使い方
```bash
# インストール可能なNode.jsバージョンを確認
nodenv install --list
# 特定のバージョンをインストール
nodenv install 22.11.0
# グローバルバージョンを設定
nodenv global 22.11.0
# プロジェクト固有のバージョンを設定
cd /path/to/project
nodenv local 20.11.0
# 現在のバージョンを確認
nodenv version
# インストール済みバージョン一覧
nodenv versions
# パッケージマネージャーでパッケージをインストール後
nodenv rehash
```
#### 2. npmパッケージの管理
```bash
# package.jsonの初期化
npm init -y
# 開発用パッケージをインストール
npm install --save-dev eslint prettier
# 本番用パッケージをインストール
npm install express
# グローバルパッケージをインストール
npm install -g typescript
# Yarnを使う場合
yarn add react
yarn add -D @types/react
# pnpmを使う場合
pnpm add fastify
pnpm add -D vitest
```
#### 3. インストール済みのNode.js開発ツール
- **npm**: デフォルトパッケージマネージャー
- **yarn**: 高速パッケージマネージャー
- **pnpm**: ディスク効率的なパッケージマネージャー
- **typescript**: TypeScript言語
- **ts-node**: TypeScript実行環境
- **nodemon**: ファイル変更監視・自動再起動
- **eslint**: JavaScriptリンター
- **prettier**: コードフォーマッター
- **npm-check-updates**: パッケージ更新チェッカー
### Scala開発環境のセットアップ
#### 1. 必要なツールのインストール
```bash
# Coursier (Scalaツールのインストーラ)
brew install coursier/formulas/coursier
# Metalsのインストール
cs install metals
# sbtのインストール(まだの場合)
brew install sbt
```
#### 2. Neovimでの初回セットアップ
```vim
" プラグインのインストール
:PlugInstall
" Scalaファイルを開いてMetalsを起動
:MetalsInstall
" プロジェクトのインポート
:MetalsImportBuild
```
### トラブルシューティング
#### プラグインが読み込まれない場合
```vim
:PlugInstall
```
#### CoC.nvimの言語サーバーをインストール
```vim
:CocInstall coc-json coc-tsserver coc-python coc-rust-analyzer coc-metals
```
### TypeScript開発環境のセットアップ
#### 1. CoC拡張機能
install.shで以下が自動インストールされます:
- **coc-tsserver**: TypeScript言語サーバー
- **coc-eslint**: ESLintサポート
- **coc-prettier**: Prettierフォーマッター
- **coc-json**: JSON IntelliSense
- **coc-svelte**: Svelte言語サーバー
#### 2. TypeScript用キーバインド
既存のCoC.nvimキーバインドがTypeScriptでも使用可能:
- `gd`: 定義へジャンプ
- `gr`: 参照箇所一覧
- `K`: ホバードキュメント表示
- `rn`: リネーム
- `f`: 自動フォーマット
#### 3. CoC設定(:CocConfig)
```json
{
"coc.preferences.formatOnSaveFiletypes": [
"typescript",
"typescriptreact",
"javascript",
"javascriptreact"
],
"tsserver.formatOnType": true,
"typescript.updateImportsOnFileMove.enable": true,
"typescript.suggest.autoImports": true,
"eslint.autoFixOnSave": true,
"prettier.requireConfig": true
}
```
### Svelte開発環境のセットアップ
#### 1. インストールされるプラグイン
- **vim-svelte**: 軽量なSvelte構文ハイライト
- **vim-svelte-plugin**: 高機能Svelte構文プラグイン(Sass/TypeScript対応)
- **context_filetype.vim**: Svelteファイル内でHTML/JS/CSS部分を区別
- **nerdcommenter**: Svelte対応コメント機能
- **vim-prettier**: Prettierフォーマッター統合
#### 2. Svelte用設定
プロジェクトルートに`svelte.config.js`が必要(TypeScript/Sass使用時):
```javascript
import { vitePreprocess } from '@sveltejs/kit/vite';
const config = {
preprocess: vitePreprocess(),
kit: {
// adapter設定など
}
};
export default config;
```
#### 3. CoC Svelte設定(:CocConfig)
```json
{
"svelte.enable": true,
"svelte.plugin.typescript.enable": true,
"svelte.plugin.css.enable": true,
"svelte.plugin.html.enable": true,
"svelte.plugin.svelte.format.enable": true
}
```
#### 4. Svelteファイルでのコメント
- HTML部分: ``
- Script部分: `// コメント`
- Style部分: `/* コメント */`
#### Metalsが動作しない場合
```vim
" Metalsの診断
:MetalsDoctor
" ログの確認
:MetalsLogToggle
" サーバーの再起動
:MetalsRestartServer
```
#### デバッグ機能を使う場合
```vim
" ブレークポイントを設定してからデバッグ開始
dt " ブレークポイント設定
dc " デバッグ実行
" デバッグ中の操作
dK " 変数の値を確認
dso " 次の行へ
dsi " 関数の中へ
```
### AWS開発環境のセットアップ
#### AWS CLIの初期設定
```bash
# AWS認証情報を設定
aws configure
# プロファイルを指定して設定
aws configure --profile myprofile
# 設定確認
aws configure list
aws sts get-caller-identity
```
#### SAM CLIの使い方
```bash
# SAMプロジェクトの初期化
sam init
# ローカルでLambda関数をビルド
sam build
# ローカルでテスト実行
sam local start-api
sam local invoke FunctionName
# デプロイ
sam deploy --guided
```
### Claude Codeの使い方
#### 初期セットアップ
```bash
# インストール確認
claude doctor
# 任意のプロジェクトディレクトリで認証設定
cd /path/to/your/project
claude
# ブラウザが開き、認証フローが始まります
# エイリアスを使った起動
claude # claude-code と同じ
```
#### 基本的な使用方法
- プロジェクトディレクトリで `claude` コマンドを実行
- Claude Console (console.anthropic.com) での認証が必要
- アクティブな課金アカウントが必要
### MySQL Shellの使い方
#### 基本的な接続方法
```bash
# MySQL Shellで接続(デフォルトはJavaScript モード)
mysqlsh -u username -h hostname -P 3306
# SQLモードで接続
mysqlsh --sql -u username -h hostname
# URI形式で接続
mysqlsh --uri username@hostname:3306/database
# エイリアスを使った接続
msh -u root -h localhost # JavaScriptモード
sql # 従来のmysqlクライアント
```
#### MySQL Shellのモード切り替え
```sql
-- SQLモードに切り替え
\sql
-- JavaScriptモードに切り替え
\js
-- Pythonモードに切り替え
\py
-- 現在のモードを確認
\status
```
#### 便利なエイリアス
- `msh`: MySQL Shell(デフォルト)
- `mysqlsh`: SQLモードで起動
- `mshjs`: JavaScriptモードで起動
- `mshpy`: Pythonモードで起動
- `mshdump`: ダンプユーティリティ
- `sql`: 従来のMySQLクライアント
### 推奨される.gitignore設定
Scalaプロジェクトで以下のディレクトリを除外することを推奨:
```gitignore
# Scala/Metals
.metals/
.bloop/
.scala-build/
metals.sbt
.bsp/
project/metals.sbt
project/project/
```
## カスタマイズ
各設定ファイルはカスタマイズ可能です:
- Neovimのキーマッピング: `~/.config/nvim/init.vim`の`Key mappings`セクション
- Zshエイリアス: `.zshrc`の`永続的なalias`セクション
- iTerm2設定: `iterm2/profiles.json`を編集
## トラブルシューティング
### フォントが正しく表示されない
```bash
brew tap homebrew/cask-fonts
brew install --cask font-meslo-lg-nerd-font
```
### Neovim pluginがインストールされない
```bash
nvim +PlugInstall +qall
```
## ライセンス
MIT