
エンジニア歴10年くらい。マネージャーをやりながら今なおビリビリ開発をしています。
開発において大事なのはなんと言ってもスピードだと思っています。スピードこそ正義。スピードこそスキル。スピードこそパワー。私自身、最速のエンジニアを目指しています。
AIがコードを書く精度と速度が上がるほど、差がつくのは「何を書かせるか」「どう判断するか」「どれだけ速く回すか」になります。操作速度、環境の軽さ、思考を遮らないツール。その基盤を見直すために、エディタを改めて選定し直しました。
結論。 Neovim + Claude Code + tmux という構成が良いと思いました。この構成に至った思考過程と、実際のセットアップを共有します。
昨今、Cursor、Zed、Windsurf、Kiro、Anti-Gravity……「このエディタが最強!」という議論や新しい製品が定期的にやってきます。そのたびに気になって試して、移行を検討して、結局戻って。正直この繰り返しに疲れていました。
自分の開発スタイルを改めて見直して、本当に最適なものを選びたかった。そしてこの手の議論からもう外れたかったというのが本音です。
まず自分の開発スタイルを整理します。
この前提で「エディタに何を求めるか」を考えると、答えはシンプルでした。
Cursor を使っていました。基本複数枚のワークスペースでAIに実装は知らせてます。経験値としてワークスペースを4個以上並行で開発走らせるとどこかで落ちる。まあこれはpcスペックの話ですが、会社支給なので限界はあるよね。
また、チャット機能は一切使っていません。閉じています。使っているのはほとんど CLI(Claude Code)とファイルツリー。拡張まわりが便利だから使ってるという感じでした。
問題を深掘り。ワークスペースを複数立ち上げるとメモリ不足で落ちる。
Cursor は Electron ベースで、1ワークスペースあたり 500〜800MB のメモリを消費するようです。Agent Teams で複数エージェントを並列で走らせながら、ワークスペースも複数開くと、マシンリソースが限界に達します。AI駆動開発でエージェントを何本も並列で動かすスタイルと、重いエディタは相性が悪い。
2026年2月現在で主要な選択肢を比較しました。
AI 統合は優秀ですが、自分はその機能を使っていません。Electron のメモリオーバーヘッドだけを背負っている状態です。複数ワークスペースでの OOM クラッシュ問題は深刻で、公式も50分ローテーションを推奨するほどです。
Rust 製で GPU アクセラレーション。起動 0.12〜0.2秒、RAM 200〜400MB。Cursor の 1/3〜1/4 のメモリ消費。ACP(Agent Client Protocol)で Claude Code との連携も可能です。マルチバッファでのレビュー体験も良い。
候補としてはこれだと思ってた。
最軽量。RAM 30〜80MB。Cursor の 1/10 以下。ワークスペースを4つ開いても Cursor の 1 ワークスペース分にすら届きません。Rust ネイティブの Zed よりさらに軽い。
claudecode.nvim で Claude Code とのネイティブ統合があります。tmux との組み合わせでターミナル操作も自由自在。セットアップに時間はかかりますが、自分で磨き上げる余地がある。
選定の過程で一つ思ったことがあります。
AIがコードを書いてくれる。じゃあそもそもエディタなんていらなくないか? 極論、CLIだけでよくないか?
ただ流石に cat や vi でソースコードを確認するのはしんどい。設計書の Markdown もターミナル上で読みやすいとは言えない。
新卒で入った会社の最強エンジニアはvimmerでした。ただ当時の私に扱える代物ではなかった。javaなんて使ってないのに謎にeclipseで書いてた...
最速を目指す以上。そろそろ私もvimと向き合う必要があると感じた。あとは覚悟だけかなと。 最軽量、最速のポテンシャル、そして自分で研ぎ続けられる拡張性。Neovim を選びました。
nvim-config/
├── init.lua # エントリポイント
├── lua/
│ ├── config/
│ │ ├── options.lua # エディタ基本設定
│ │ ├── keymaps.lua # キーバインド
│ │ └── autocmds.lua # 自動コマンド
│ └── plugins/
│ ├── editor.lua # neo-tree, telescope, flash, harpoon, surround, lazygit
│ ├── ui.lua # tokyonight, lualine, gitsigns, indent guides
│ ├── lsp.lua # mason, lspconfig, nvim-cmp
│ ├── treesitter.lua
│ ├── formatting.lua # conform.nvim (保存時自動フォーマット)
│ ├── linting.lua # nvim-lint (静的解析)
│ └── ai.lua # claudecode.nvim, render-markdown
├── setup.sh # セットアップスクリプト
├── aliases.sh # シェルエイリアス
└── README.md
lazy.nvim を使用しています。遅延ロードが標準で、起動速度に影響するプラグインが最小限になります。
ナビゲーション
| プラグイン | 役割 | キーバインド |
|---|---|---|
| neo-tree.nvim | ファイルツリー | Space+e |
| telescope.nvim | ファジーファインダー | Space+ff (ファイル), Space+fg (grep) |
| flash.nvim | 画面内ジャンプ(2-3キーストローク) | s |
| harpoon | 常用ファイルの瞬間切り替え | Space+1〜4 |
コーディング
| プラグイン | 役割 |
|---|---|
| nvim-lspconfig + mason | LSP(定義ジャンプ、補完、診断) |
| nvim-cmp | 補完エンジン |
| nvim-treesitter | 構文解析ベースのハイライト |
| conform.nvim | 保存時自動フォーマット |
| nvim-lint | 静的解析 |
| nvim-surround | 囲み文字の操作 |
AI 連携
| プラグイン | 役割 | キーバインド |
|---|---|---|
| claudecode.nvim | Claude Code との統合 | Space+ac (トグル), Space+as (コード送信) |
| render-markdown.nvim | Markdown のレンダリング強化 | — |
その他
| プラグイン | 役割 | キーバインド |
|---|---|---|
| lazygit.nvim | Neovim 内から Git 操作 | Space+gg |
| gitsigns.nvim | 変更行のサイン表示 | ]h / [h (hunk移動) |
| vim-tmux-navigator | Neovim/tmux ペイン間のシームレス移動 | Ctrl+h/j/k/l |
| todo-comments.nvim | TODO/FIXME のハイライト + 検索 | Space+ft |
Neovim 内で Space+ac を押すと、右側にターミナルが分割表示され、Claude Code が起動します。ビジュアルモードでコードを選択して Space+as を押せば、選択範囲が Claude Code に送られます。
一つ注意点があります。Neovim のターミナルモードでは Esc が Claude Code 側に渡されてしまい、Neovim の Normal モードに戻れません。keymaps.lua に以下を追加することで解決しました。
map("t", "<Esc><Esc>", "<C-\\><C-n>", { desc = "Exit terminal mode" })
Esc 1回は Claude Code に渡り、Esc 2回連打で Neovim に戻ります。棲み分けできます。
また Shift+Enter の改行は Terminal.app では動作しないため、Option+Enter で代替しています。
Neovim 単体ではターミナル操作ができなくなります。tmux と組み合わせることで解決します。
┌──────────────────────────────────────┐
│ │
│ Neovim (上) │
│ │
├──────────────────────────────────────┤
│ ターミナル
└──────────────────────────────────────┘
tmux の基本操作は以下の通りです。
| 操作 | キー |
|---|---|
| 左右分割 | Ctrl+b → %(Shift+5) |
| 上下分割 | Ctrl+b → "(Shift+2) |
| ペイン移動 | Ctrl+b → 矢印キー |
| ペインを閉じる | exit か Ctrl+d |
vim-tmux-navigator を入れているので、tmux 側にも設定を追加すれば Ctrl+h/j/k/l で Neovim のウィンドウと tmux のペインをシームレスに行き来できます。
Cursor(VS Code)のワークスペース管理だけはパワフルで、正直捨てたくなかった機能です。登録したプロジェクトを一覧から選んで即座にそのディレクトリに移動できる。これは開発の速度に直結します。
再現するために、fzf を使ったプロジェクトセレクターを自作しました。
# プロジェクトセレクター(新規ターミナルウィンドウで開く)
ws() {
if ! command -v fzf &>/dev/null; then
echo "fzf が必要です: brew install fzf"
return 1
fi
# ~/devel 直下のディレクトリを自動検出
local auto_projects=()
for d in "$HOME"/devel/*/; do
[ -d "$d" ] && auto_projects+=("${d%/}")
done
# 階層が深いプロジェクトは直接登録
local extra_projects=(
"$HOME/devel/spbl/repositories/spbl-ai"
"$HOME/devel/spbl/repositories/spbl-api"
)
local selected
selected=$(printf '%s\n' "${auto_projects[@]}" "${extra_projects[@]}" | sort -u | fzf --height=40% --reverse --prompt="workspace > " --with-nth=-1 --delimiter=/)
[ -z "$selected" ] && return
local session_name
session_name=$(basename "$selected")
local color
color=$(_ws_color "$session_name")
# tmux セッションのスタイル設定
local tmux_style
tmux_style="tmux set-option -t '=$session_name' status-style 'bg=$color,fg=#c0caf5'"
tmux_style="$tmux_style; tmux set-option -t '=$session_name' pane-active-border-style 'fg=$color'"
tmux_style="$tmux_style; tmux set-option -t '=$session_name' pane-border-style 'fg=#3b4261'"
osascript -e "
tell application \"Terminal\"
do script \"cd '$selected' && if tmux has-session -t '=$session_name' 2>/dev/null; then $tmux_style; tmux attach-session -t '=$session_name'; else tmux new-session -d -s '$session_name'; $tmux_style; tmux send-keys -t '$session_name' 'v .' Enter; tmux attach-session -t '=$session_name'; fi\"
activate
end tell
"
}
ws コマンドを打つとプロジェクト一覧が表示され、選択すると新しいターミナルウィンドウが開き、そのディレクトリで tmux + Neovim が起動します。既存のターミナルは汚染されません。
エディタ選定でGit系の拡張を基準にしている方は多い印象です。ツリー表示やGUIベースのステージング、ビジュアルなdiffビューアなど。
自分はずっと CLI コマンドで Git 操作をしてきたので、こういったGUIツールは逆に慣れていません。あえて入れていません。git status、git diff、git add -p、git commit。これで十分回ります。
最初はlazygit を入れて Space+gg でそちらを使うようにしてみたが、自分のメインの使い方ではないので削除しました。
# リポジトリをクローン
git clone https://github.com/nero-15/nvim-config.git ~/dotfiles-nvim
cd ~/dotfiles-nvim
# セットアップスクリプト実行
bash setup.sh
setup.sh は以下を自動で行います。
~/.config/nvim をタイムスタンプ付きでバックアップ初回の nvim 起動で lazy.nvim がプラグインを自動インストールします。
https://github.com/nero-15/nvim-config
※現在進行形でチューニング中

まだまだ研鑽の途中です。環境を作って1週間が経とうとしています。Cursor はまだ一度も開いていません。それでも実装はできています。
実運用で使いながら慣れて、最適化していくつもりです。環境を自分で作り、自分で磨き続けられるのが Neovim を選んだ理由の一つでもあるので。
AIがコードを書く時代に、エディタに求めるものは変わりました。
Neovim + Claude Code + tmux。最軽量のエディタと、最強のAIエージェントと、柔軟なターミナルマルチプレクサ。この三位一体が、今の自分にとっての最速の構成です。
スポーツ×ITの会社でバックエンドエンジニア兼マネージャーとして勤務。インテル関連の情報を中心に、AI・IT技術やサイト運用ノウハウも発信しています。
最終更新: 2026年2月20日
© 2025 nero15.dev. All rights reserved.