1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NeovimのGUI設定ツール「Neovim Config GUI」を作った

1
Posted at

image.png

はじめに

Neovimは高機能でカスタマイズ性に優れたテキストエディタですが、設定ファイル(init.lua)を一から書くのはなかなかハードルが高いものです。「行番号を表示したい」「タブ幅を4にしたい」といったシンプルな設定でも、vim.opt.number = trueのような記法を調べる必要があります。

そこで、GUIで直感的にNeovimを設定できるデスクトップアプリ「Neovim Config GUI」を開発しました。

Neovim Config GUI とは

Neovim Config GUIは、Neovimの設定をグラフィカルに管理できるクロスプラットフォームのデスクトップアプリケーションです。Windows、macOS、Linuxで動作します。

技術スタックはTauri v2(Rust)+ Vite + Vanilla JavaScriptを採用し、軽量かつ高速な動作を実現しています。

主な特徴

  • 123種類のvim.opt設定をカテゴリ別に整理
  • lazy.nvimプラグインの視覚的な管理
  • 既存のinit.luaを読み込んで編集可能
  • packer.nvimからの移行をサポート

機能紹介

1. Settings タブ - 設定管理

Neovimのvim.opt設定を、以下のカテゴリに分類して管理できます:

  • Display: 行番号、カーソルライン、折り返しなど
  • Indent: タブ幅、スペース変換、自動インデント
  • Search: インクリメンタル検索、大文字小文字の扱い
  • Edit: クリップボード連携、マウス操作
  • Window: 画面分割の方向、スクロールオフセット
  • File: バックアップ、スワップファイル、Undo履歴
  • Performance: 更新間隔、遅延描画

各設定はトグルスイッチ、ドロップダウン、数値入力など、設定の種類に応じた最適なUIで操作できます。デフォルト値から変更された項目は視覚的にハイライトされ、何を変更したか一目でわかります。

検索機能も搭載しており、「number」「tab」などのキーワードで設定を横断検索できます。

2. Plugins タブ - プラグイン管理

lazy.nvim形式でプラグインを管理できます。

image.png

カタログから追加: telescope.nvim、nvim-treesitter、nvim-lspconfigなど、人気のプラグインをカタログから選択して追加できます。カテゴリ別(Navigation、Git、LSP、Completion、Colorschemeなど)に整理されているので、目的のプラグインを見つけやすくなっています。

手動追加: GitHubのowner/repo形式でプラグイン名を入力して追加することも可能です。オートコンプリート機能付きで、プラグイン名の入力をサポートします。

ドラッグ&ドロップ: プラグインの読み込み順序をドラッグ&ドロップで変更できます。

オプション編集: lazy = trueevent = "VeryLazy"dependenciesなどのオプションも直接編集可能です。

3. Custom タブ - カスタムコード

キーマップやautocmdなど、GUIでは表現しきれないLuaコードを直接記述できます。

image.png

vim.g.mapleader = " "
vim.keymap.set("n", "<Leader>w", ":w<CR>")
vim.keymap.set("n", "<Leader>q", ":q<CR>")

既存のinit.luaを読み込んだ際、ツールが認識できない高度な設定は自動的にこのタブに振り分けられるため、設定が失われる心配がありません。

4. スマートパーサー

既存のinit.luaを読み込む際、形式を自動認識します。

  • vim.opt.xxx = value 形式の設定
  • o.xxx = value 形式(エイリアス)
  • lazy.nvimのプラグイン定義
  • packer.nvimのプラグイン定義(自動変換)

特筆すべきはpacker.nvimからの移行サポートです。packer.nvimは2023年8月に開発終了となりましたが、まだ利用しているユーザーも多いでしょう。このツールでpacker形式のinit.luaを開くと、自動的にlazy.nvim形式に変換されます。

-- packer形式(読み込み)
use({ "nvim-treesitter/nvim-treesitter", run = ":TSUpdate" })

-- lazy.nvim形式保存
{ "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" }

ただし、自動認識を信用しすぎないでください。技巧的な設定ファイルは、正しく読み込めないと思います。

技術的なこだわり

Tauri v2 の採用

ElectronではなくTauriを採用したことで、インストーラーのサイズは約3MB、メモリ使用量も最小限に抑えられています。Rustで書かれたバックエンドがファイルの読み書きを担当し、フロントエンドは純粋なHTML/CSS/JavaScriptで構築しています。

フレームワークレス

React、Vue、Svelteなどのフレームワークを使わず、Vanilla JavaScriptで実装しました。依存関係を最小限に抑え、ビルドが高速で、長期的なメンテナンス性も確保しています。

インストール方法

ビルド済みバイナリ

GitHubのReleasesページから各OS用のインストーラーをダウンロードできます:

  • Windows: .msi または .exeNSIS
  • macOS: .dmg
  • Linux: .AppImage または .deb

ソースからビルド

git clone https://github.com/yourname/neovim-config.git
cd neovim-config
npm install
npm run tauri build

今後の展望

現在のバージョン0.1.0では基本的な機能を実装していますが、今後機能追加を検討しています:

  • LSP設定のGUIサポート
  • キーマップのビジュアルエディタ
  • 設定のインポート/エクスポート
  • テーマのプレビュー機能

おわりに

Neovim Config GUIは、Neovim初心者が設定の第一歩を踏み出すためのツールであると同時に、既存ユーザーが設定を整理・見直すためのツールでもあります。

「init.luaを書くのが面倒」「packer.nvimからlazy.nvimに移行したい」という方は、ぜひ試してみてください。

ソースコードはGitHubで公開しています。


リンク

動作環境

  • Windows 11
  • Linux (Ubuntu 20.04+, その他主要ディストリビューション)
  • macOS 10.15+

ただし、検証済みなのは Windows 11 と WSL(Ubuntu), Ubuntu 25.10 です。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?