8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Neovim IDE パッケージ (LunarVim)

Posted at

モチベーション

Neovim1の設定をするのは楽しいが、同時に「こんなことをしている暇はない」2という思いもある。

そこで、インストールすればすぐに使えるよう各種プラグインがプリセットされたNeovim IDE パッケージを下記にメモする。

LunarVimを導入してみたが、もっさりとした動作に耐えきれず結局、元のkitty+(素の)Neovimに戻った。プラグインについて、vim-plugだとコンフィグがバラバラになって管理しきれなくなるので、packerを使うのが大事。

要件

欲しい機能は下記。

  • Julia環境
    • 関数の自動補完。
    • REPL実行環境
  • Markdown環境
    • リアルタイムのプレビュー表示。CSSでのカスタマイズあり。
    • 数式が表示できること。
  • 全文検索
  • Lightテーマ。
  • 一般要件
    • デザイン、信頼性、高速性、容易性、等

IDE パッケージ

どのようなパッケージがあるかは、下記のような用語でGithubを検索すると良い。なお同様の手法で、Emacsについても調べられる。

下記のパッケージ横の☆は、Github上でのスター数。各パッケージとも、Githubだけでなく自身のHPを立ち上げているあたり、やる気が見て取れる。

NvChad ☆15.1k

image.png

一番人気のパッケージ。速度が重視されているらしい。元はsiduckさんの個人プロジェクト。

Lightテーマがないようなので、パス。

LunarVim ☆13.5k

image.png

カスタマイズ性と高速性を重視しているとのこと。ドキュメントも充実している印象。NvChadとは対象的に、コミュニティ重視。

導入

公式 (英語)を参考に、ターミナルに下記を入れる (Ubuntuの場合)。Macならsudo apt-get install -ybrew installとかになるはず。最終行のNeovimのインストールそのものは、5分程度かかる。また、初回起動時はプラグインのインストールに1分程度、時間がかかる。

既存の設定は (多分) 上書きされない。

# bash
sudo apt-get install -y git
sudo apt-get install -y make
sudo apt-get install -y pip
sudo apt-get install -y python
sudo apt-get install -y npm
sudo apt-get install -y nodejs
sudo apt-get install -y cargo
LV_BRANCH='release-1.2/neovim-0.8' bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/fc6873809934917b470bff1b072171879899a36b/utils/installer/install.sh)
echo 'export PATH=/home/user/.local/bin:$PATH' >> ~/.bashrc; source ~/.bashrc
lvim

lvim起動後に、下記。LSPの名称については、ここのページ下部を参照。

" lvim
:TSInstall julia markdown
:LspInstall julials marksman
:!mkdir ~/.config/lvim/ftplugin
:e ~/.config/lvim/ftplugin/julia.lua " 下記コードを書いて保存
-- ~/.config/lvim/ftplugin/julia.lua
local opts = {}
-- re-use common lsp configurations (keybindings, buffer-highlight and cmp integration)
opts = require("lvim.lsp").get_common_opts()
require('lspconfig').julials.setup(opts)
# bash
julia --project=~/.julia/environments/nvim-lspconfig -e 'using Pkg; Pkg.add("LanguageServer")'

必要に応じてNerdフォントも入れる。例えば下記。git cloneに30分ほどかかるので注意。その後、gnome-terminaliTerm2にフォントを設定してやる。

# bash
git clone https://github.com/ryanoasis/nerd-fonts
cd nerd-fonts
./install.sh FiraCode

キーバインド

デフォルトのキーバインドは、例えば下記。

キー 操作 モード
<Space>(1秒待ち) which-key ノーマル
<Space>-e edit file (nvim-tree) ノーマル
<Space>-f find file (telescope) ノーマル
<Space>-; スタート画面 ノーマル
<Ctrl>-\ ターミナル ノーマル
<Space>-bb/bn タブ移動(左右) ノーマル
<Space>-bj タブ移動(ヒント) ノーマル

設定

~/.config/lvim/config.luaに設定を行う。

-- ~/.config/lvim/config.lua
vim.o.background = "light"

キーマップ

キーマップの設定についてはここ

プラグイン

~/.config/lvim/config.lua内に、例えば下記のように設定する。設定後、:PackerSyncを実行する。

-- ~/.config/lvim/config.lua
lvim.plugins = {
  'morhetz/gruvbox',
  'psliwka/vim-smoothie',
  'JuliaEditorSupport/julia-vim',
}

カラースキーム

<Space>-spで色々なスキームを試せるので、そこで自分が好きなものを見つけて、下記を設定ファイルに書き込む。なお、Vimカラースキームの選択はこのページを見て行うのが効率的。

-- ~/.config/lvim/config.lua

AstroNvim ☆6.8k

image.png

失礼な言い方だけれど、LunarVimの下位互換のイメージ。

LazyVim ☆4.2k

image.png

プラグインマネージャーであるlazy.nvimを核としたパッケージ。一部で、独自のキーバーインドを採用しているように見える。

並べてみると、どのプラグインも似ている。実際使ってみても、そこまで大きな差はないのだろうと予想される。

nvim-config ☆2.3k

image.png

コミュニティではなく、個人が作ったパッケージ。

SpaceVim ☆19.7k

image.png

恐らく (Neoでない) Vimでは唯一のIDEパッケージ。SpaceEmacsからインスピレーションを受けていて、スペースキーが操作の鍵になる設定がなされている。レイヤーという独自の設定層を設けていて、init.lua/vimを触らなくてもNeovimの設定が行えるようになっている。以前に入れた際には、SpaceEmacsと同様、動作がもっさりだった記憶がある。

HPを見る限り、Juliaがサポートされていないように見えるので、見送り。

  1. ①Visual Studio Codeは使いやすいし動作も高速なのだが、ところどころでマウスを使わないといけない操作が入るのが嫌い。②Emacsはマウスなしでもいけるが、素早いカーソル移動をしようと思うと、やはりマウスが必要になる。Evilは挙動が不安定な場合があり、キーバインドのカスタマイズがしにくい。また、パッケージが昔ながらの「ソース読め」なので、導入コストが高い。③(Neo)vimはその点、カーソル移動が高速で行え、カスタマイズ性もバランスが良いように感じられる。

  2. LSPの設定、似たようなプラグインの中からの選定、プラグインを入れる順番、こちらを入れるとあちらが動かない、少し触っている内にどこが原因でエラーが出ているのか分からなくなった、等。Visual Studio Codeならば、とっくに動いて半日コードを書いていたところなのに……のような。

8
7
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
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?