📝

LunarVimのインストール (Mac)

2023/07/17に公開

LunarVim

Vimの設定やプラグイン管理は面倒だったりします(個人差)。自分はVimを、ちょっとしたコーディングやファイルの閲覧、メモにしか使いませんが、そのためだけにVimの設定に時間を使うのはゲンナリします。しかもVim初心者なので、そもそも設定がよく分からなかったりします。

ですが、他の人のイケてる見栄えやスマートな機能は真似したいのです。

そんな、

  • Vim初心者
  • 面倒な設定はしたくない
  • イケてる見栄え/プラグインは使いたい

の期待に答えるものの一つが、LunarVimです。

LunarVimは、Neovimに、みんなが使うプラグインや見栄えを最初から組み込んだVimディストリビューションです。大して細かい設定にこだわりがない人にはかなりおすすめで、自分もこの数ヶ月使っています。

https://www.lunarvim.org/

インストール

上記の公式ページに、動画まであり、かなり詳しく解説されており、Vimに興味を持つ人には不要そうですが、このような流れです ('23/7/17現在)。

依存ソフトのインストール

Prerequisitesにかかれているソフトウェアをインストールしましょう。それぞれのソフトのインストール方法は、下記以外にも方法があるので、参考までにしてください(自分があとから調べるのが面倒なので書いてます)。

まずは、ターミナルでgccと打って、Command Line Toolsのインストールをします。これでおそらく、gccとmakeは入るのではと思いますが、ダメそうなら、下記のbrewでインストールしてください。

その後、brewをインストールします。

https://brew.sh/index_ja

その後は、公式ページにかかれている前提条件のソフトをインストールしていきます。

brew install neovim git python3 node

pipをインストールしてアップデートしておきます。

python3 get-pip.py
pip3 install -U pip

https://pip.pypa.io/en/stable/installation/

Rustをインストールします。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

https://www.rust-lang.org/tools/install

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を簡単にインストールするスクリプトです。

https://github.com/ronniedroid/getnf

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

各フォントのプレビューは、こちらで見れます(フォント名が画像になっているので、目的のフォントをページ内検索できない…)。

https://www.nerdfonts.com/font-downloads

状況によるかもしれませんが、自分が試した時は、サーバーが不調だったのか、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を二回打ったら検索ワードのマーカーが消える

プラグインの追加や設定

プラグインの追加や、追加したプラグインの設定方法は、以下に書かれています。

https://www.lunarvim.org/docs/configuration/plugins/example-configurations

例えば、ツリー表示の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