Closed9

WSL2 + Neovim環境を作る

Koya MasudaKoya Masuda

シンボリックリンクを貼る

mv ./nvim-linux64 /usr/local
ln -s /usr/local/nvim-linux64/bin/nvim /usr/local/bin/nvim

Koya MasudaKoya Masuda

パッケージマネージャー選定

Lua plugins are easy to create just like Vimscript plugins. Your config can live in init.lua!

公式よりLuaがおすすめされているようだったのでLua baseなpackage managerで足切りする。

Koya MasudaKoya Masuda

Lua-based package manager

調べた感じ、これくらい。

印象 スター数🌟 GitHub
packer.nvim 使っている人多い。安心。 6k https://github.com/wbthomason/packer.nvim
lazy.nvim マッチョUI 4k https://github.com/folke/lazy.nvim
mason.nvim パッケージマネージャーと言うよりプラグイン? 4.1k https://github.com/williamboman/mason.nvim
paq-nvim 絵がないので不安 572 https://github.com/savq/paq-nvim

参考:https://www.libhunt.com/l/lua/topic/package-manager

Koya MasudaKoya Masuda

READMEに沿ってinit.luaにコピペ

init.lua
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({
    "git",
    "clone",
    "--filter=blob:none",
    "https://github.com/folke/lazy.nvim.git",
    "--branch=stable", -- latest stable release
    lazypath,
  })
end
vim.opt.rtp:prepend(lazypath)

require("lazy").setup(plugins, opts)
Koya MasudaKoya Masuda

カラースキームの導入

tokyonightを選択

init.lua
 require("lazy").setup({
  {
    "folke/tokyonight.nvim",
    config = function()
      vim.cmd[[colorscheme tokyonight-moon]]
    end
  }
})
Koya MasudaKoya Masuda

導入したプラグインが増えてきた

見た目周り

カラースキーム

  • folke/tokyonight.nvim

nightで使ってる

https://github.com/folke/tokyonight.nvim

ファイラー

そもそもファイラーという言葉もvscodeを使っていたときは知らなかった

  • nvim-tree/nvim-tree.lua

https://github.com/nvim-tree/nvim-tree.lua

ステータスライン

特にこだわりはない

  • nvim-lualine/lualine.nvim

https://github.com/nvim-lualine/lualine.nvim

バッファーライン

akinshoさんはよく見る名前で信頼できそう

分割したバッファについてくるのがうっとおしかったため、windowの下に固定になるように設定している。

vim.opt.laststatus = 3
require('lualine').setup({
  options = {
    globalstatus = true,
  }
})
  • akinsho/bufferline.nvim

https://github.com/akinsho/bufferline.nvim

便利系

  • windwp/nvim-autopairs

括弧を自動補完してくれる。必須級。

https://github.com/windwp/nvim-autopairs

  • pocco81/auto-save.nvim

insertモードを抜けると自動補完してくれる。saveしていなくてハマることが多かったので助かる。

https://github.com/Pocco81/auto-save.nvim

  • petertriho/nvim-scrollbar

スクロールバーを出してくれる。これがあるなら、ステータスラインの〇〇%の表示は要らないなあ。

https://github.com/petertriho/nvim-scrollbar

  • mvllow/modes.nvim

currentが位置とモードがわかりやすくなる

https://github.com/mvllow/modes.nvim

Git

すごく悩んだ。特にdiffを横並びで見たかったのと、1ファイルの中で行単位のステージングの機能を重要視した。

  • TimUntersberger/neogit

神。後述するdiffviewとの相性もよく、単純なgit操作は完結する。

TimUntersberger/neogit

  • sindrets/diffview.nvim

見た目がいい。デカ目の差分が見やすくなった。

https://github.com/sindrets/diffview.nvim

LSP&補完

あまりまだ良くわかっていない。こちらの記事を参考にした。

https://zenn.dev/botamotch/articles/21073d78bc68bf

  • neovim/nvim-lspconfig
  • williamboman/mason.nvim
  • williamboman/mason-lspconfig.nvim
  • hrsh7th/nvim-cmp
  • hrsh7th/cmp-nvim-lsp
  • hrsh7th/cmp-buffer
  • hrsh7th/cmp-path
  • hrsh7th/cmp-cmdline
このスクラップは2023/04/08にクローズされました