0
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?

More than 1 year has passed since last update.

WSL2にてneovimのプラグイン管理

Posted at

背景

  • 現在急激に流行ってきているといわれるneovimのinit.vimをluaで記述する方法を取り入れたかった
  • 研究室のPCがwindowsなのでWSL2ベースでやる必要があった

neovimのインストール

  • 以前からneovimを使っていたが,init.luaを読み込まなかったため0.5系以上にする必要があった

最新のneovimをインストール

まずはneovimのリポジトリを追加

sudo apt-add-repository ppa:neovim-ppa/stable
sudo apt update

neovimのインストール

sudo apt install neovim

これでinit.luaを読み込めるようになる

init.luaについて

init.vimをluaで記述したもの
init.vimと共存はできない.どちらも存在するとエラーが出るらしい
自分の ~/.config/nvimは以下のようになっている

.
├── init.lua
└── lua
    ├── plugins.lua
    └── settings.lua

1 directory, 3 files

init.luaにすべて記述するのではなく,/lua以下にsettingsやpluginsなどに分けて記述することで後から見やすくする
init.luaでrequireするときは.luaをつける必要はない

init.lua
require "plugins"
require "settings"

packer.nvimの導入

まずはクローンしてくる

git clone https://github.com/wbthomason/packer.nvim \
  ~/.local/share/nvim/site/pack/packer/opt/packer.nvim

init.luaを上記のようにし,/lua/plugins.luaを以下のようにする(ほとんどコピペ)
プラグインを追加したい場合はuseの後に追加する

plugins.lua
vim.cmd[[packadd packer.nvim]]

require("packer").startup(function()
  -- 起動時に読み込むプラグインは名前を書くだけです
  use "tpope/vim-fugitive"
  use "tpope/vim-repeat"

  -- opt オプションを付けると遅延読み込みになります。
  -- この場合は opt だけで読み込む契機を指定していないため、
  -- packadd コマンドを叩かない限り読み込まれることはありません。
  use { "wbthomason/packer.nvim", opt = true }
  -- packer.nvim 自体を遅延読み込みにする理由はまた後ほど。

  -- コマンドを叩いたときに読み込む。
  use { "rhysd/git-messenger.vim", opt = true, cmd = { "GitMessenger" } }

  -- 特定のイベントで読み込む
  use { "tpope/vim-unimpaired", opt = true, event = { "FocusLost", "CursorHold" } }

  -- 特定のファイルタイプのファイルを開いたら読み込む
  use { "fatih/vim-go", opt = true, ft = { "go" } }

  -- 特定のキーを叩いたら読み込む
  -- この例ではノーマルモードの <CR> にマッピングしていますが、
  -- モードを指定する場合はテーブルを入れ子にします。
  -- keys = {
  --   { "n", "<CR>" },
  --   { "v", "<CR>" },
  -- }
  use {
    "arecarn/vim-fold-cycle",
    opt = true,
    keys = { "<CR>" },
  }

  -- 特定の VimL 関数を呼ぶと読み込む
  -- この例だと、任意の場所で Artify("hoge", "bold") のように呼び出された時に、
  -- このプラグインも読み込まれます。
  use { "sainnhe/artify.vim", opt = true, fn = { "Artify" } }

  -- 実は opt = true は省略できます。読み込む契機(この例では cmd)を指定すると、
  -- 自動的に遅延読み込みとみなされます。
  use {
    "npxbr/glow.nvim",
    cmd = { "Glow", "GlowInstall" },
    -- run オプションを指定すると、インストール時・更新時に
    -- 実行するコマンドを指定できます。
    run = [[:GlowInstall]],
    -- 先頭に : がついていないなら bash -c "..." で実行されます。
    -- run = [[npm install]],
    -- 関数も指定可能です。
    -- run = function()
    --   vim.cmd.GlowInstall()
    -- end,
  }

  -- 条件が真の時のみ読み込みます。条件は起動時に毎回判定されます。
  use {
    "thinca/vim-fontzoom",
    cond = [[vim.fn.has"gui" == 1]], -- GUI の時のみ読み込む。
    -- 関数も指定できます。
    -- conf = function()
    --   return vim.fn.has "gui" == 1
    -- end,
  }

  -- 依存関係も管理できます。vim-prettyprint は capture.vim に依存しています。
  use {
    "tyru/capture.vim",
    requires = {
      { "thinca/vim-prettyprint" },
    },
  }
end)

プラグインインストール

plugins.luaにプラグインを追加したら,nvimを起動して

:PackerInstall

参考文献

https://sig9.org/archives/3148
https://qiita.com/delphinus/items/8160d884d415d7425fcc

0
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
0
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?