開発環境2026

開発環境2026

私はNeovimの中で生活している。

朝起きてターミナルを開き、Neovimを起動し、コードを書き、ドキュメントを読み、AIと対話し、gitを操作し、そして夜になってNeovimを閉じる。この生活がもう何年続いているだろうか。正確には覚えていない。覚えていないということは、もうそれが当たり前になっているということだ。

2026年1月。世間では生成AIを活用した開発が当たり前になり、「AIがコードを書く時代にプログラマーは不要になる」と言われ始めてからもう数年が経った。結論から言うと、プログラマーは不要になっていない。AIと対話しながらコードを書く時間が増えただけである。

この記事では、そんな2026年の私の開発環境を晒しておく。1年後に見返したら「あの頃はこんな環境だったのか」と懐かしむことができるかもしれない。あるいは「1年経っても何も変わってないじゃないか」と呆れるかもしれない。どちらでも構わない。

OS: Linux Mint 22.2

WSL2との別れ

かつて私はWindowsユーザーだった。

開発にはWSL2(Windows Subsystem for Linux 2)を使っていた。WSL2は素晴らしい技術だ。Windowsの上でLinuxを動かせる。GUIアプリも動く。Dockerも動く。理論上は最強の環境である。

理論上は。

現実には、WSL2を起動するとCPU使用率が謎に跳ね上がる問題に悩まされていた。何もしていないのにファンが回り始める。ターミナルを開いているだけでCPUが20%ほど消費される。これを業界では「WSL2ファン回転症候群」と呼ぶ(呼ばない)。

最初は「まあ、仮想環境だし多少は仕方ない」と思っていた。しかし、真夏に冷房をつけていない部屋でファンがフル回転し始めると、さすがに考え直す。「俺は今、何のためにPCを動かしているんだ?」と。コードを書くためか?ファンを回すためか?

ネイティブLinuxなら、この問題は存在しない。ファンは必要なときにだけ回る。当たり前のことが、当たり前に起こる。それだけで幸せになれることを、私は知ってしまった。

なぜLinux Mintなのか

Linuxディストリビューションは無数にある。私は複数のノートPCを持っており、それぞれに異なるディストリビューションを入れて遊んでいる。Arch Linux(Manjaro)、Fedora、そしてもちろんWindows。しかし、メインマシンにはLinux Mintを選んだ。

理由は単純で、Debian系のディストリビューションをWSL2以外で使ったことがなかったからだ。Arch系もRed Hat系も経験した。残るはDebian系。その中で安定リリースに定評のあるLinux Mintを選んだ。

「安定リリースに定評がある」と書いたが、正直に言うと、決め手は別にあった。

Steamである。

そう、ゲームである。Steamのゲームが、Linux Mintで安定して動いたのだ。

「開発環境の記事でゲームの話をするな」という声が聞こえてくる気がする。ごもっともである。しかし、人間は仕事だけで生きているわけではない。仕事の合間にゲームをしたいこともある。そのたびにWindowsに切り替えるのは面倒だ。

ProtonとSteam Playの進化により、Windowsゲームの多くがLinux上で動くようになった。Linux Mintでは特に安定していた。これが決め手になった。技術的な理由ではなく、生活の質を上げるための選択である。開発環境とは、仕事をする場所であると同時に、生活する場所でもあるのだ。

あと、Macは高い。M1チップ以降のMacは確かに素晴らしいが、同じ予算でLinuxマシンを組めば、もっとスペックの高いマシンが手に入る。そして私はWindowsのUIに慣れているので、macOSの「閉じるボタンが左にある」UIにいつまで経っても馴染めなかった。これも正直な理由として書いておく。

ターミナル: Wezterm

ターミナルエミュレータはWeztermを使っている。

選んだ理由は4つある。

  1. Rust製である
  2. GPUアクセラレーションに対応している
  3. Luaで設定できる
  4. クロスプラットフォームである

1つずつ説明しよう。

Rust製である

Rust製のソフトウェアには信頼を置いている。メモリ安全性が保証されているというのもあるが、それ以上に「Rustで書き直そう」と思う開発者は、往々にしてソフトウェアの品質に対する意識が高い。これは偏見かもしれない。しかし、経験則として、Rust製のCLIツールは動作が速く、クラッシュしにくい傾向がある。

ターミナルエミュレータは毎日何時間も使うソフトウェアだ。その品質に妥協したくない。

GPUアクセラレーションに対応している

「ターミナルにGPUアクセラレーションが必要か?」という疑問を持つ人がいるかもしれない。

必要だ。

大量のログを流したとき、巨大なファイルをcatしたとき、ターミナルの描画がカクつくのはストレスになる。WeztermはGPUを使って描画を行うため、どれだけ大量のテキストを流してもぬるぬる動く。一度この快適さを知ってしまうと、もう戻れない。

これを「ターミナルGPU信者」と呼ぶ人もいるだろう(いない)。私は信者で構わない。

Luaで設定できる

これが実は一番大きな理由かもしれない。

私のエディタはNeovimであり、NeovimはLuaで設定する。つまり、エディタとターミナルの設定を同じ言語で書ける。設定ファイルを行き来するときに頭を切り替える必要がない。.wezterm.luainit.luaを同じ感覚で編集できる。

これは些細なことに思えるかもしれないが、毎日の作業の積み重ねでは大きな違いになる。

クロスプラットフォームである

前述の通り、私は複数のマシンを使っている。Linux、Windows、そしてたまにMac。Weztermはすべてのプラットフォームで動く。設定ファイルをdotfilesリポジトリで管理しておけば、どのマシンでも同じ環境が再現できる。

他のターミナルを試した結果

Wezterm以外のモダンなターミナルエミュレータも試した。特にGhosttyは気になっていた。Zig製で高速、ネイティブUIを採用しており、評判も良い。

しかし、Debian系はコミュニティ版の配布となっている。出来れば公式配布が安心だ。

また、Ghosttyは現時点でmacOSとLinuxのみ対応しており、Windowsはまだ開発中だ。複数のOSを行き来する私にとって、クロスプラットフォーム対応は譲れない条件だった。

というわけで、Weztermに落ち着いている。

エディタ: Neovim

本題である。私が「中で生活している」と言ったNeovimについて語ろう。

なぜNeovimなのか

「2026年にもなってVim系エディタを使っているのか」と言われることがある。VS CodeやJetBrains IDEのほうが機能が豊富ではないか、と。

その通りである。VS Codeは素晴らしいエディタだ。拡張機能が豊富で、設定も簡単で、多くの開発者に愛されている。JetBrains IDEは言語ごとに最適化されており、リファクタリング機能は圧倒的だ。

しかし、私はNeovimを選んだ。理由は「自分だけの環境を作りたかった」からだ。

Neovimは、デフォルトの状態ではほとんど何もできない。シンタックスハイライトすらまともに動かない。そこから、自分で必要な機能を足していく。プラグインを選び、キーマップを設定し、見た目を調整する。この過程が楽しい。

「エディタの設定に時間をかけるより、コードを書く時間に使ったほうがいいのでは?」という意見もある。ごもっともである。しかし、エディタの設定を「趣味」と割り切れば、何の問題もない。私にとってNeovimの設定は、盆栽を育てるようなものだ。少しずつ手を入れ、理想の形に近づけていく。終わりはない。

dotfilesという沼

私のNeovim設定はdotfilesリポジトリで公開している。

ディレクトリ構成はこんな感じだ:

nvim/
├── init.lua
├── lazy-lock.json
├── after/
│   └── lsp/
│       ├── rust_analyzer.lua
│       ├── ts_ls.lua
│       └── ...
└── lua/
    ├── plugins/
    │   ├── sakurajima.lua
    │   ├── blink-cmp.lua
    │   ├── snacks.lua
    │   └── ...
    └── daiki/
        ├── lazy.lua
        └── lsp.lua

プラグインマネージャーはlazy.nvimを使っている。補完エンジンはblink.cmp、ファイルピッカーはsnacks.nvim。どれも比較的新しいプラグインだ。Neovimのエコシステムは進化が速い。去年まで定番だったプラグインが、今年には新しいプラグインに置き換わっていることも珍しくない。

私は常に最新を追いかけるタイプだ。「安定を求めるならプラグインを固定しろ」という意見もあるが、新しいプラグインを試すのが楽しいのだから仕方がない。

キーマップの哲学

私のNeovim設定で一番こだわっているのは、キーマップの統一性だ。

すべてのアクションは;(セミコロン)をプレフィックスとして始まる:

なぜ;なのか。Vimにおいて;は「直前のf/t検索を繰り返す」キーに割り当てられている。しかし、私はこの機能をほとんど使わない。使わないキーを潰して、自分用のプレフィックスキーにした。

この統一性により、「あの機能のキーマップは何だっけ?」と悩むことがなくなった。とりあえず;を押せば、which-keyが候補を表示してくれる。

sakurajima.nvim

私は自作のカラーテーマ「sakurajima.nvim」を使っている。

名前の由来は、鹿児島県の桜島。活火山である。黒い火山灰と、赤いマグマ。そのイメージをカラーテーマに落とし込んだ。

背景は黒に近いダークグレー(#22272e)。テキストは灰色がかった白(#8b9aaa)。アクセントカラーにはオレンジ(#E38D2C)やシアン(#2BB6BA)を使っている。

このテーマを作ったのは2024年。そして2年間、毎日このテーマを使い続けた。「いつか直そう」と思っている箇所がいくつもあった。2年間ずっと思っていた。

そして2026年1月、ついに重い腰を上げて大改修を行った。2年分の不満を一気に解消した話は、別の記事「Neovimのカラーテーマ「sakurajima.nvim」を作成して学んだこと」に書いたので、興味があればそちらも読んでほしい。

Rust第一主義

私の主要な開発言語はRustだ。したがって、Neovimの設定もRust開発に最適化している。

rust-analyzerとの連携にはrustaceanvimを使っている。このプラグインは、単なるLSP設定以上のことをしてくれる:

Cargo.tomlの依存関係管理にはcrates.nvimを使っている。依存クレートのバージョン確認と更新がエディタ内で完結する。

「RustのためにNeovimを使っている」のか、「Neovimを使うためにRustを書いている」のか。もはやどちらが先かわからない。

生成AI: Claude Code

さて、2026年の開発環境を語る上で避けて通れないのが生成AIだ。

私はClaude Codeを使っている。これが私にとって初めての「開発に本格的に使う生成AIツール」だ。

なぜClaude Codeなのか

GitHub Copilotは使ったことがない。Cursorも使ったことがない。ChatGPTをコード生成に使ったこともほとんどない。

なぜか。

ターミナルで完結しないからだ。

私はNeovimの中で生活している。ブラウザを開いてChatGPTにアクセスするのは、Neovimの外に出ることを意味する。VS CodeにCopilotを入れるなら、そもそもVS Codeを使わなければならない。Cursorに至っては、専用のエディタを使う必要がある。

「OpenAIにもCodex CLIがあるじゃないか」という声が聞こえてくる気がする。確かに、2025年4月頃にOpenAIはターミナルで動くコーディングエージェント「Codex CLI」をリリースした。Rust製で、Claude Codeと同じくターミナルで完結する。

しかし、私がClaude Codeを使い始めたのはCodex CLIのリリース前だった。そして、一度慣れた環境を変えるのは面倒だ。Claude Codeで特に不満がないので、乗り換える理由がない。これを「先行者利益」と呼ぶ(呼ばない)。

Claude Codeは違う。ターミナルで動く。つまり、Neovimの中から:terminalで起動できる。

:terminal claude --permission-mode plan

このコマンドを打つだけで、AIとの対話セッションが始まる。Neovimの画面を分割して、左側にコード、右側にClaude Code。コードを書きながらAIに相談し、AIの提案を見ながらコードを修正する。この作業がすべてNeovimの中で完結する。

これが最高である。

Plan Modeという発明

Claude Codeには--permission-mode planというオプションがある。このモードでは、AIはファイルの編集を行わない。コードの調査と提案のみを行う。

私はこのモードを愛用している。

なぜなら、 AIにコードを勝手に書かれたくない からだ。

AIが生成したコードをそのまま使うのは危険だ。バグが含まれているかもしれない。自分のコーディングスタイルと合わないかもしれない。そもそも、何をやっているのか理解しないままコードを使うのは、技術的負債を積み上げる行為である。

Plan Modeでは、AIは「こういう方針で実装するのはどうですか」と提案してくれる。私はそれを読み、理解し、自分でコードを書く。AIは先生であり、私が生徒だ。先生が黒板に書いた内容をそのまま写すのではなく、理解した上で自分のノートにまとめる。そういう使い方をしている。

生成AI時代の開発スタイル

「AIがコードを書く時代にプログラマーは不要になる」という予測は、今のところ外れている。

確かに、AIは驚くほど賢い。複雑なアルゴリズムを実装させれば、数秒で動くコードを生成してくれる。しかし、「何を作るか」を決めるのは人間だ。「このコードで本当にいいのか」を判断するのも人間だ。AIは道具であり、道具を使う人間がいなければ、道具は何も生み出さない。

2026年の開発は、「AIと対話しながらコードを書く」というスタイルになった。AIに質問し、AIの回答を読み、自分で考え、コードを書く。このサイクルを繰り返す。AIがいなかった時代と比べて、確かに開発は速くなった。しかし、プログラマーの仕事がなくなったわけではない。むしろ、AIを上手く使える人と使えない人の差が広がっている気がする。

私はClaude Codeのおかげで、開発が楽しくなった。一人で悩んでいた問題を、AIに相談できる。「この設計、どう思う?」と聞けば、AIは真面目に答えてくれる。深夜3時に壁打ち相手になってくれるAIは、ありがたい存在だ。

ブラウザ: Chrome

ブラウザはChromeを使っている。

特にこだわりはない。

Webアプリケーションを開発しているため、ユーザーのデファクト環境で動作確認ができることが重要だ。世界で最も使われているブラウザはChromeなので、Chromeで動作確認をする。それだけの理由である。

開発者ツールは便利だ。それ以上でも以下でもない。

まとめ

2026年1月時点の私の開発環境を振り返ってみた。

振り返って気づいたことがある。私の開発環境は、 「ターミナルの中で完結させたい」 という欲求に貫かれている。

OSはLinuxを選び、ターミナルはWeztermを選び、エディタはNeovimを選び、AIはClaude Codeを選んだ。すべて「ターミナルで使える」という基準で選んでいる。ブラウザだけは例外だが、それはWebアプリの動作確認という避けられない理由があるからだ。

2026年の開発環境は、 「エディタ + AI」 が中心になっている。エディタでコードを書き、AIに相談し、またコードを書く。このサイクルが日常になった。

1年後、この記事を読み返したとき、私はどんな環境を使っているだろうか。Neovimはまだ使っているだろうか。Claude Codeはまだ存在しているだろうか。Linux Mintは22.3になっているだろうか。

わからない。わからないからこそ、記録を残しておく。