NEOVIM結構慣れてきた話（楽しい）


初めての記事がこれなのは、なかなか癖がある始まり方ですね。。。

## 目次
- neovimの説明（めっちゃざっくり）
- なぜ使おうとしたのか？
- コーディング3年目としてAIから少し離れる
- 今使ってるプラグイン
- １か月使ってわかったこと


## 説明
neovimをご存知な方は結構多いと思います。
「vim = vi++ ならneovim = vi# ではないのか」みたいな下らないネタを考えてます。

大雑把にまとめるとvimから進化したlua製のエディターです。
起動が早いのが特徴ですね、ターミナルベースなので
プラグインが星の数ほどあります、カラースキームから
作業を一気に変えてしまうほど便利な物
メール、タイピングゲーム（?）
それほどコミュニティ が盛んで多くの人から愛されているエディタってわけですね。  

vimからの根強いユーザーも多いですね
有名なneovimユーザーといえば、そうあの人×２ですね

-- *TakuyaさんInkdrop開発者、devaslife (youtube)*
*動画が本当に素晴らしいです。（どうやったらこんな動画作れるだ。。。）*
[HP](https://www.craftz.dog/)

-- *ThePrimeagen 元Netflix、Twitch配信者*
*neovimプラグインも 作っているそうです（自分はまだ試してないです）*
[Twitch](https://twitch.tv/ThePrimeagen)
[プラグイン ](https://github.com/ThePrimeagen/harpoon)

## なぜ使おうとしたのか？

ターミナルでとんどの作業を簡潔出来たらいいなと思ったのがはじまりですね。
あとカスタマイズしているのを見るとかっこいいとか思ったのと。
neovimの動画でものすごい速度でコードを書いてる動画を見つけて
「俺の爆速でコード書きたい！」って思ったのがきっかけ。

僕のエディタの旅
- 2年前（初心者） : Vscode
- 1.5年前～1年前 : Pycharm , webstorm めっちゃ使いやすいけど重い
- zed 一か月満たないくらい
- 去年冬～今年５月  : Vscode （neovim挫折 × ５）

めちゃくちゃ挫折を繰り返していました。
というのも使ったことある人はわかると思うんですけど
ショートカットキーのコンセプトが普通のアプリと180度違って。
まあこれが慣れたらめちゃ便利なんですけど、

僕はアプリ入れたらショートカットをすぐ覚える人間で
yabaiとかraycastめっちゃ組むんですけど
neovimは、ショートカットの考え方が全くの別物なのが挫折の原因でした。
しかしそれを何とか乗り越えつつある感じです。

##  コーディング3年目としてAIから少し離れる

*現在私のneovimにはAI関係のプラグインをいれてません。*
それは、将来の生産性のためでもあるかも知れまんが。
 AIを使ってると顕著に頭を使わなくなるのが原因です。
 Agentモードでバイブコーティングして全く理解できないコードを目の前にしたら、自分のポテンシャルを殺してる気がします。
完全にAIを使いすぎないで、脳みそ🧠を使いましょう
”記憶とか理解とか意味ない” は嘘で、訓練することに意味があります。

しかし、自分はAIを使わないわけでもないです。
AIは素晴らしい道具で、それを否定しません。
私も個人開発の仕様を作ったり、本当にわからないエラーがあったときに聞いたりしています。


##  現在のneovim環境

*プラプイン多いすぎ〜*

neovimには”パッケージマネージャー”ってのがあります。
これはOSの物（Mac : brew  Ubuntu : apt  ArchLinux : pacman NixOS : Nix）
と同じ役割でneovimのプラグインを管理するものです。
私は[Lazy](https://github.com/folke/lazy.nvim)で管理してます。他にはpackerとか色々あるんですが。
自分は初めから設定するのが面倒で、neovimディストロ（プラグイン、設定がセットになってるもの）のlazyvimを入れた後、いらない物を消したり、変更したりしています。

ディストロ自体NVchadとか色々あります。neovimに移行考えてる人には個人的にlazyvimをお勧めします。
ドキュメントもあるしyoutubeもあるので情報が潤ってますね。

さあこれから本題に入りましょう。
パッケージマネージャーはもう紹介したので飛ばします。
大体メジャーな物なので聞き飽きる人が多いかも。長々と書きたくないので省略してます。

### [**🖍️ テーマ（超重要！！）現在はnightfox**](https://github.com/EdenEast/nightfox.nvim)
catppuccin Tokyo night  rose を回して使ってます
テーマが割と大事だと思います（真顔）。
車の色みたいな物ですね
「テーマとかどうでもいい」みたいなつまらない人間は嫌いです。
自分の個性を出すから自分の使いやすい作業環境構築することができるんです。
意思あるところに思想あり


### [**☕️  LSP（補完機能系）**](https://github.com/neovim/nvim-lspconfig)

Microsoftが開発したエディタと言語サーバー間の共通プロトコル
（ 🙏 ありがとうchatgpt）
API的なもので、コードの補完やインポートを担うものです。
これと合わせて使われるのがcmp（補完）, mason（フォーマット）	これはもう心臓みたいな部分ですね。	

![Pasted image 20250618114452.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3816559/4b021431-3010-4349-ad65-fbbbffc6ea79.png)


フォーマットは、保存した直後にフォーマットするようにしてます
（これが一番）。

###  [**🔭 Telescope（この世の全てを検索）**](https://github.com/nvim-telescope/telescope.nvim)

fzfっていう検索するツールがあるんですが、それをneovimに組み合わせた物ですね
ファイル検索だけではなく、定義、インポート、単語検索、使用箇所までも調べられる	万能君ですね。

（ファイル検索）

![Pasted image 20250618114311.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3816559/f5a4cc6a-c4b2-41c3-8f3c-304609b2edeb.png)



メジャーなもんはここら辺でいいでしょう。
これからは、地味に便利なものを紹介

<br/>
<br/>

###  [**📋 TODOハイライト**	](https://github.com/folke/todo-comments.nvim)
![Pasted image 20250618120319.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3816559/0195f743-ccea-4f5d-9b7b-c86406756e4c.png)



<br/>
<br/>

###  [**🏷️ タグ自動補完**	](https://github.com/windwp/nvim-ts-autotag)
自動でTHMLなどのタグを補完してくれるものです。
reactで大活躍



<br/>
<br/>

###  [**🎨 色を表示**](https://github.com/norcalli/nvim-colorizer.lua)
![Pasted image 20250618124553.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3816559/3d582c59-dde9-48a3-970b-6ba314742dbf.png)



<br/>
<br/>

###  [**🔂 git変更表示**	](https://github.com/lewis6991/gitsigns.nvim)


+とか-でgitの変更を表示してくれる優れもの
![Pasted image 20250618125208.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3816559/b3fbd3f9-2fe7-4741-9153-7ae90c55234e.png)




# 最後に
使ってまだまだなんでこれからneovimの旅が始まるので、プラグイン・設定は変化すると思います。
vim motionもまだまだ遅いので慣れてないのでだいぶ手こずってますが、これからもっと高度なことが簡単にできると思うとワクワクしてきます。
この記事のフィードバック・他に便利なプラグインや設定をご存知ならコメント書いて頂けると嬉しいです。

これから、Mac、ターミナルの設定などの記事を書いていこうと思ってます。
それではまた 👋