このリポジトリは、個人的に開発環境を素早く設定するための dotfilesです。 基本的にはMac前提で、zsh、Neovim、tmux などの設定を含み、複数のマシンで一貫した開発環境を維持するのが目的です。 割と使いやすくはなっていると思うのでご自由にお使いください。
- 動的シンボリックリンク作成: dotfiles ディレクトリ内のファイルを自動的に検出し、適切なシンボリックリンクを作成
- zsh:
- prezto フレームワークを使用
- powerline10k テーマによる視覚的に優れたプロンプト
- カスタムエイリアスと関数
- Neovim:
- 最新の Lua ベースの設定
- プラグインマネージャーとして Packer を使用
- LSP、自動補完、ファジーファインダーなどの高度な機能
- Ghostty + zellij:
- モダンなターミナルエミュレータ (Ghostty) の設定
- zellij によるターミナルマルチプレクサ(VSCode風レイアウト)
- yazi ファイルマネージャー統合
- git-dashboard: 複数リポジトリの状態一覧表示
- tmux:
- 効率的なターミナルマルチプレクサの設定
- カスタムキーバインディング
- マウスサポート
- 簡単なインストールとアップデートプロセス
./
├── .config/ # XDG準拠の設定
│ ├── ghostty/ # Ghosttyターミナル
│ ├── nvim/ # Neovim
│ ├── yazi/ # ファイルマネージャー
│ └── zellij/ # ターミナルマルチプレクサ
├── .local/bin/ # カスタムスクリプト
├── shell/ # シェル設定
│ ├── .zshrc, .zshenv # zsh
│ ├── .zpreztorc # prezto
│ ├── .p10k.zsh # powerlevel10k
│ ├── .bashrc # bash
│ └── .tmux.conf # tmux
├── scripts/ # メンテナンススクリプト
│ ├── cleanup.sh
│ └── generate_gitconfig.sh
├── install.sh # インストーラー(エントリーポイント)
└── aqua.yaml # CLIツール定義
-
このリポジトリをクローンします:
git clone https://github.com/yourusername/dotfiles-v2.git ~/dotfiles cd ~/dotfiles
-
インストールスクリプトを実行します:
./install.sh
このスクリプトは以下の操作を行います:
- dotfiles ディレクトリ内のファイルを自動的に検出し、適切なシンボリックリンクを作成
- Neovim、prezto、fzf、powerline10k をインストール(まだインストールされていない場合)
- Neovim プラグインをインストール
-
新しい zsh セッションを開始するか、以下のコマンドを実行します:
source ~/.zshrc
- 新しい設定ファイルを
~/dotfilesディレクトリに追加します。 ./install.shを再度実行して、新しいファイルのシンボリックリンクを作成します。- 各ツールの設定ファイルを直接編集してカスタマイズできます:
- zsh:
~/.zshrc - Neovim:
~/.config/nvim/init.lua - tmux:
~/.tmux.conf
- zsh:
注意: README.md、install.sh、.gitignore などのファイルは自動的にシンボリックリンクの作成から除外されます。
- カスタムエイリアスとファンクションは
~/.zshrcで定義されています。 - prezto の設定は
~/.zpreztorcで行います。 - プロンプトのカスタマイズは
p10k configureコマンドで行えます。
nvimコマンドで Neovim を起動します。- カスタムキーマッピング:
<Space>がリーダーキーとして設定されています。<leader>ff: ファイル検索<leader>fg: グレップ検索- その他のキーマッピングは
~/.config/nvim/init.luaを参照してください。
- ヤンク(コピー)した内容は自動的にシステムクリップボードにコピーされます。
- システムクリップボードの内容はNeovim内で直接ペースト可能です。
<leader>y: 選択したテキストをシステムクリップボードにヤンク<leader>p: システムクリップボードの内容をペースト
注意: これらの機能はmacOSのpbcopyとpbpasteコマンドを利用しています。他のOSを使用している場合は、適切なクリップボードツールをインストールし、設定を調整する必要があります。
Ghosttyはモダンなターミナルエミュレータで、起動時に自動的にzellijがVSCode風レイアウトで起動します。
レイアウト構成(左25% / 右75%):
┌───────────┬───────────┬───────────┐
│ yazi │ │ │
│ (files) │ terminal │ terminal │
├───────────┼───────────┼───────────┤
│ git │ │ │
│ dashboard │ terminal │ terminal │
└───────────┴───────────┴───────────┘
yaziでファイルを選択すると、フローティングペインでnvimが開きます。
主なキーバインド(macOSではAlt = Option):
Option+h/j/k/l: ペイン移動Option+n: 新しいペインOption+f: フローティングペイン切替Cmd+F: yaziファイルマネージャー起動Cmd+H: チートシート表示Ctrl+g: ロック/解除
git-dashboard:
- 複数リポジトリの状態を一覧表示
- 表示形式:
リポジトリ名ブランチステータス同期状態- ステータス:
clean/3編集/2staged/1new - 同期状態:
↑1 push可/↓2 pull必要
- ステータス:
Enter: lazygitで詳細操作
tmuxコマンドで新しいセッションを開始します。- 主なキーバインド:
- プレフィックスキー:
Ctrl-a - 新しいウィンドウ:
Prefix + c - ウィンドウ分割(垂直):
Prefix + v - ウィンドウ分割(水平):
Prefix + h - ペイン移動:
Alt + 矢印キー - ウィンドウ切り替え:
Shift + 矢印キー - 設定リロード:
Prefix + r
- プレフィックスキー:
-
基本的なファイル内容検索:
fs 検索語現在のディレクトリとサブディレクトリ内のすべてのファイルから「検索語」を検索します。
-
ファイルタイプを指定した検索:
fst 検索語 ファイルタイプ例:
fst "import" py(Pythonファイル内で "import" を検索) -
大文字小文字を区別する検索:
fsc "CamelCase"
検索結果は fzf インターフェースで表示され、選択したファイルは Neovim で開きます。
- ディレクトリ移動:
fcdコマンドを使用 - コマンド履歴検索:
Ctrl+R - ファイル検索:
fzfコマンドを使用
GitHub CLIを使用した認証を推奨します:
# GitHub CLIのインストール(Homebrewで自動インストール済み)
brew install gh
# GitHub認証
gh auth login認証時の選択肢:
- GitHub.com を選択
- HTTPS を選択
- ブラウザで認証
これにより、gitの認証情報とユーザー情報が自動的に設定されます。
- 問題が発生した場合は、まず
install.shスクリプトを再実行してみてください。 - Neovim のプラグインに問題がある場合は、Neovim 内で
:PackerSyncを実行してみてください。 - tmux の設定が反映されない場合は、tmux 内で
Prefix + rを押して設定をリロードしてください。 - シンボリックリンクが正しく作成されない場合:
- dotfiles ディレクトリ内のファイル権限を確認してください。
- ホームディレクトリ内の既存ファイルをバックアップまたは削除してから、再度
install.shを実行してください。
バグ報告、機能リクエスト、プルリクエストを歓迎します。大きな変更を加える前に、まずは Issue を開いて議論することをお勧めします。
このプロジェクトは MIT ライセンスの下で公開されています。詳細は LICENSE ファイルを参照してください。