neovim での設定ファイルとその備忘録を書いておく。
neovimの設定はvimscriptとLuaの両方で書くことが可能であるが、筆者はLuaで設定ファイルを書く。
packer.nvimは開発をストップするとのことなので、lazzy.nvimに移行した。
-
プラグインマネージャー
-
LSP関連のプラグイン
-
補完関連のプラグイン
-
テーマ
- vim-code-dark:Visual Studio Code風のテーマ
-
バッファ管理
- barbar.nvim: vs-codeのタブのようにバッファを管理できる(要 nerd-fonts)
nerd-fontsはパッケージマネージャより導入した
$ sudo pacman -S nerd-fonts
日本語入力にskk(vim-skk/eskk.vim)の導入を検討中
- 必要なこと:
- プラグインのインストール
- 辞書のダウンロード(sudo pacman -S skk-jisyo)
- 辞書のpathを登録
neovim-config/nvim
に設定ファイルを置いていて、nvim
を~/.configにシンボリックリンクを貼っている
- init.lua
- neovimの設定ファイル
- lua/plugins.lua
- pluginマネージャの設定ファイル
プラグインマネージャとしては packer.nvimを使う
筆者の環境はArch Linuxであるので、AURからnvim-packer-gitとしてインストールする
neovimの設定ファイルが置かれている。
~/.configにシンボリックリンクを貼ってある
-
init.lua
- neovimの設定ファイル
-
lua/plugins.lua
- pluginマネージャの設定ファイル
-
plugins/packer_compiled.lua
- Packerによってコンパイルされた中間コード
-
LSPの導入がうまくいかない.....
-
LSP関連のプラグイン
masonでとりあえずpythonのlspを入れてみたが得になにかが変わった感じではないのだが?
とりあえず、現在は以下のような感じ。気が向いたらファイルの分割化をするかも。
- LSP、コード補完の設定までok
- 以下のようにinit.luaに追加したらLSPが動いた
-- mason: LSPマネージャー
require("mason").setup()
require("mason-lspconfig").setup()
-
コード補完
- nvim-cmp,cmp-nvim-lsp,vim-vsnipを使っている
- 設定: nvim-cmpのGitHubにあった設定を利用。
-
言語ごとのLSPの導入
- Masonを用いて欲しいサーバーをインストールした後で以下のように設定をinit.luaに書き込む(以下ではPython,C++,Rust,Lua)
-- python
require("lspconfig").pyright.setup {}
-- cpp
require("lspconfig").clangd.setup {}
-- Rust
require("lspconfig").rust_analyzer.setup {}
-- Lua
require("lspconfig").sumneko_lua.setup {}
packer.nvimは開発をストップするとのことなので、lazzy.nimに移行する。
- まずMasonで管理しているLSPを削除する
- packer.nvimで管理しているプラグインに依存するコードをinit.luaから削除する
- packer.nvimで管理しているプラグインを削除する
- packer.nvimを削除する
- lazy.nvimをインストールする
- lazy.nvim用に
init.lua
,lua/plugins.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)
プラグインはlua/plugins.lua
に以下のように書き込む
return {
"<plugin_name>"
}
これを読み込むためにinit.lua
側に
require("lazy").setup("plugins")
と書き込む。