Zenn
🐥

形から入る系エンジニアがAstroNvimを使ってみた話

2024/12/14に公開

この記事は ヤプリ #1 Advent Calendar 2024 - Adventar 14日目の記事です。

はじめに

株式会社ヤプリでバックエンドエンジニアをやっている水戸と申します。
2年ぶり2回目の登場です。

この記事では、何事にも形から入る系エンジニアである僕が、AstroNvimを導入した話をします。

AstroNvimとは

AstroNvimは、拡張性と使いやすさを重視した、美しく機能豊富なNeovimコンフィギュレーションです。
(公式ホームページの文章を引用し、DeepL翻訳)
https://astronvim.com/

Neovimとは?

エンジニアの方なら一度は使ったことがあるであろうVimというテキストエディターがあります。
Vimを拡張可能なようにしたものがNeovimです。
Luaで書かれたプラグインを導入することで、様々な機能が使えるようになったりします。
わかりやすく言えば、VSCodeなどの一般的なエディターに機能として実装されている拡張機能のようなものです。
各言語のプラグインを入れればコード補完やコードジャンプができるようになったり、テーマのプラグインを入れてカラースキームや見た目を変えてみたりなど自由自在です。
https://neovim.io/

しかし、拡張可能であるが故に、初期状態では何も入っていません。
あらゆるプラグインが存在しても、それの存在を知らなければただのテキストエディターとなんら変わりません。

AstroNvimの魅力

最初の取っ掛かり部分をなんとかしてくれるのが、Neovimコンフィギュレーションです。
基本機能として、様々なプラグインを初期設定で導入してくれます。


(公式ページから画像を引用)

AstroNvimを導入するだけで、あなたのvimがこんな姿に様変わりします。
これだけでテンション上がりませんか?僕は上がりました。

新卒で入社した会社で上司だった先輩エンジニアがVimmerで、自分もそれに憧れてVimキーバインドを利用しながらVSCodeやCursor等を使っていましたが、Neovimにすることで開発スピードが落ちて「結局VSCodeとかCursorのほうが速いな」ってなる未来が見えていたので、今までNeovimへの移行にチャレンジしませんでした。
しかし、AstroNvimを導入するだけで、バニラ状態のVSCodeくらいにまではグレードアップできます。

豊富なプラグインたち

Neovimのコミュニティは2015年あたりから立ち上がっています。
世界中にたくさんのVimmerが存在し、今まで数多のプラグインが生み出されてきました。
AstroNvimは根幹がNeovimなので、当然Neovimのプラグインを利用することができます。
「こんな機能欲しいなぁ」と思って検索したら、基本何かしらがヒットするくらいには豊富なので、自分だけの開発環境を作っていくことができます。

見た目を良くしたい!

形から入る系エンジニアの僕は、真っ先に視覚的にかっこいいエディターにしたいと考えます。
プラグインとしてテーマを導入するのもいいですが、AstorNvimではAstroCommunityというプラグインやテーマ、LSPなどを簡単に導入できる仕組みがありますので、そちらを使ってみましょう。

今回は、僕が使っている tokyonightテーマを例に紹介します。
~/.config/nvim/lua/community.luaに以下の行を追加します。

return {
  "AstroNvim/astrocommunity",
  { import = "astrocommunity.colorscheme.tokyonight-nvim" },  -- これを追加
}

次に、~/.config/nvim/lua/plugins/astroui.luaの該当箇所を編集します。

return {
  "AstroNvim/astroui",
  opts = {
    colorscheme = "tokyonight-storm",  -- ここをtokyonight-stormに変更
  },
}

するとテーマが変わります!

うーんかっこいい。
これだけでテンション上がります。

プラグインの導入方法

先程も書いた通り、Neovimコミュニティは成熟しているので、数多のプラグインが存在します。
今回は例として、ChatGPT.nvimを導入する方法を紹介します。

~/.config/nvim/lua/plugins 配下に、以下のファイルを増やすだけです。

return {
  "jackMort/ChatGPT.nvim",
}

これだけ!簡単!

…とまあ実際は、OpenAIAPIのAPIキーなどを設定しないと動かないので、これだけになることはないですが。
基本的にはGitHubのリポジトリ名を書くだけです。

LSPの導入方法

LSPとはLanguage Server Protocolの略で、コードエディターとして利用するのに便利な機能群を提供してくれます。
コード補完やコードジャンプ、コンパイルエラーなどなど。
導入方法はいくつかありますが、いちばん簡単な方法は、導入したい言語のファイルを開いて LSPInstallコマンドを実行することです。

実行すると、対象のファイルタイプに適応するLSPを自動的にリストアップしてくれて、そこから選択できるようになります。
以下の画像は、luaファイルを開きながら :LSPInstallを実行したときの例です。
インストールしたいLSPを選んでEnterを押せばインストールが進行してくれて、LSPの機能を利用できるようになります。

自作したスクリプト

最後に、私がAstroNvimの自作スクリプトを紹介します。

telescopeを利用したディレクトリ移動スクリプト

AstroNvimには、超強力なFuzzy Finderの Telescope が標準搭載されています。
それの機能を使って、リポジトリを一覧化して簡単にディレクトリを移動できるスクリプトを書きました。
https://github.com/KazuyaMito/astronvim_config/blob/eb00626473961239261b4481b22b97cc0cd674e8/lua/custom_functions/change_directory.lua

このように、いろいろなプラグインを組み合わせて独自の動きを作り出すことも可能です。

最後に

いかがだったでしょうか。
自分はAstroNvimを導入して、開発スピードが上がりました。
見た目がかっこいいってすごいモチベーションになるんですよね(笑)
これを読んでくれたそこのあなた、AstroNvimを使ってみませんか?

Discussion

ログインするとコメントできます