LunarVimのインストール (Mac)
LunarVim
Vimの設定やプラグイン管理は面倒だったりします(個人差)。自分はVimを、ちょっとしたコーディングやファイルの閲覧、メモにしか使いませんが、そのためだけにVimの設定に時間を使うのはゲンナリします。しかもVim初心者なので、そもそも設定がよく分からなかったりします。
ですが、他の人のイケてる見栄えやスマートな機能は真似したいのです。
そんな、
- Vim初心者
- 面倒な設定はしたくない
- イケてる見栄え/プラグインは使いたい
の期待に答えるものの一つが、LunarVimです。
LunarVimは、Neovimに、みんなが使うプラグインや見栄えを最初から組み込んだVimディストリビューションです。大して細かい設定にこだわりがない人にはかなりおすすめで、自分もこの数ヶ月使っています。
インストール
上記の公式ページに、動画まであり、かなり詳しく解説されており、Vimに興味を持つ人には不要そうですが、このような流れです ('23/7/17現在)。
依存ソフトのインストール
Prerequisitesにかかれているソフトウェアをインストールしましょう。それぞれのソフトのインストール方法は、下記以外にも方法があるので、参考までにしてください(自分があとから調べるのが面倒なので書いてます)。
まずは、ターミナルでgccと打って、Command Line Toolsのインストールをします。これでおそらく、gccとmakeは入るのではと思いますが、ダメそうなら、下記のbrewでインストールしてください。
その後、brewをインストールします。
その後は、公式ページにかかれている前提条件のソフトをインストールしていきます。
brew install neovim git python3 node
pipをインストールしてアップデートしておきます。
python3 get-pip.py
pip3 install -U pip
Rustをインストールします。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
LunarVimのインストール
以下がインストールコマンドです。
LV_BRANCH='release-1.3/neovim-0.9' bash <(curl -s https://raw.githubusercontent.com/LunarVim/LunarVim/release-1.3/neovim-0.9/utils/installer/install.sh)
JavaScript, Python, Rustの開発環境がほしいか、途中で聞かれるので、とりあえずyにしておけば良いでしょう。
pipやRustが古いとエラーが出るかもしれません。自分がRustが古くてエラーが出ました。
次にパスを通します。下記をお使いのシェルの設定ファイルに記載します(自分はBashを使っているので、~/.bashrc
)。
export PATH="$HOME/.local/bin:$PATH"
一度、設定ファイルをsource
したら、lvim
で起動できます。
ただ、次節のNerdFontがインストールされていなければ、下記のように一部文字化けします。
NerdFontのインストール
下記のgetnfは、NerdFontを簡単にインストールするスクリプトです。
READMEの通りにしてインストールします。
# getnf自体のインストール
git clone https://github.com/ronniedroid/getnf.git
cd getnf
./install.sh
# getnfを使ってNerdFontをインストール
getnf i
そうすると、このように、どのフォントをインストールか聞いてくれます。下記では、41のMotoを選択してみました。
Fonts directory exists, good.
Created fonts download directory..
Select one or more fonts:
1) 3270 20) Gohu 39) Mononoki
2) Agave 21) Hack 40) NerdFontsSymbolsOnly
3) AnonymousPro 22) Hasklig 41) Noto
4) Arimo 23) HeavyData 42) OpenDyslexic
5) AurulentSansMono 24) Hermit 43) Overpass
6) BigBlueTerminal 25) IBMPlexMono 44) ProFont
7) BitstreamVeraSansMono 26) Inconsolata 45) ProggyClean
8) CascadiaCode 27) InconsolataGo 46) RobotoMono
9) CodeNewRoman 28) InconsolataLGC 47) ShareTechMono
10) ComicShannsMono 29) Iosevka 48) SourceCodePro
11) Cousine 30) IosevkaTerm 49) SpaceMono
12) DaddyTimeMono 31) JetBrainsMono 50) Terminus
13) DejaVuSansMono 32) Lekton 51) Tinos
14) DroidSansMono 33) LiberationMono 52) Ubuntu
15) EnvyCodeR 34) Lilex 53) UbuntuMono
16) FantasqueSansMono 35) MPlus 54) VictorMono
17) FiraCode 36) Meslo 55) iA-Writer
18) FiraMono 37) Monofur 56) Quit
19) Go-Mono 38) Monoid
Enter font number(s) (e.g. 1,2,3 or 1-3 or 1,3-5): 41
各フォントのプレビューは、こちらで見れます(フォント名が画像になっているので、目的のフォントをページ内検索できない…)。
状況によるかもしれませんが、自分が試した時は、サーバーが不調だったのか、30分~1時間ほども時間がかかりましたが、最終的には無事に終わりました。
ターミナルへの設定
ターミナルでフォントの設定をします。
iTerm2では、フォントの検索でnerdと調べると、上記でインストールしたフォントで出てくるので、それを選択します。
LunarVimを開く
上記のNerdFontの設定で、文字化けしていたはてなマークが消えて、アイコンになりました。
開いてみると、デフォルトで、画面がスタイリッシュになっています。
また、Gitで管理されたコードを修正したら、修正箇所が表示されます。
Rust, Python, JavaScriptのコード補完などもできています。
少し使い方
大して、LunarVimを使いこなしている訳ではありませんが、いくつかよく使う操作を紹介します。
設定
設定ファイルは、~/.config/lvim/config.lua
にあります。
自分が設定しているのは、以下程度です。
vim.opt.shiftwidth = 4 -- インデントはスペーズ4つ
vim.opt.tabstop = 4 -- タブ入力はスペース4つ
vim.opt.relativenumber = true -- 行番号がカーソル行からの相対値
lvim.keys.normal_mode["<Esc><Esc>"] = ":nohlsearch<CR><Esc>" -- 検索後にEscを二回打ったら検索ワードのマーカーが消える
プラグインの追加や設定
プラグインの追加や、追加したプラグインの設定方法は、以下に書かれています。
例えば、ツリー表示のneo-treeは以下のように設定できます。
{
"nvim-neo-tree/neo-tree.nvim",
branch = "v2.x",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons",
"MunifTanjim/nui.nvim",
},
config = function()
require("neo-tree").setup({
close_if_last_window = true,
window = {
width = 30,
},
buffers = {
follow_current_file = true,
},
filesystem = {
follow_current_file = true,
filtered_items = {
hide_dotfiles = false,
hide_gitignored = false,
hide_by_name = {
"node_modules"
},
never_show = {
".DS_Store",
"thumbs.db"
},
},
},
})
end
},
左側にファイル・ディレクトリ構造が見えるようになります。
:NvimTreeToggle
でも良いのですが、公式の設定サンプルにあるneo-treeの方が、ツリーを開くときにツリーのルートを設定ができて便利です。
このように、公式に書かれたサンプルを眺めて、ほしいと思ったらコピペしたら、次にLunarVimを起動した時に自動的にインストールされて、使えるようになります。
Discussion