⚙ Neovim設定メモ in 202401
序
- 春あたりに職場で大規模なPC刷新がありそうなので、年末年始でNeovimの設定ファイルを整理しました。
- プラグインは実装がLuaのものをなんとなく優先して使っています。
- ターミナルエミュレータは、Win(WSL)ではAlacrittyを、MacではiTerm2を使っています。
- コーディング用のフォントはHackのNerd Font版を使っています。
リポジトリ
キーバインド
- プラグインがらみ以外のキーバインド
Leader
はスペースキーです。;
で:
はUSキーボード利用者御用達のやつ。<Leader><Leader>
で:!
は最近追加しましたが、結構便利です。- あとはバッファ移動系(
<Leader>b
と<Leader>n
)は完全に手癖になってます。
keymap.set('n', '<Leader><Leader>', ':!')
keymap.set('n', ';', ':')
keymap.set('n', '<A-[>', ':nohl<CR>')
keymap.set('i', '<C-s>', '<ESC>:w<CR>')
keymap.set('i', '<A-[>', '<ESC>')
keymap.set('i', '<A-x>', '<del>')
keymap.set('i', '<C-h>', '<left>')
keymap.set('i', '<C-j>', '<down>')
keymap.set('i', '<C-k>', '<up>')
keymap.set('i', '<C-l>', '<right>')
keymap.set('n', '<Leader>b', ':bprev<CR>')
keymap.set('n', '<Leader>n', ':bnext<CR>')
keymap.set('n', '<Leader>pref', ':e $MYVIMRC<CR>')
keymap.set('n', '<Leader>plug', ':e ~/.config/nvim/lua/plugins.lua<CR>')
keymap.set('n', '<Leader>sjis', ':e ++encoding=sjis<CR>:w')
keymap.set('t', '<Esc>', '<C-\\><C-n>')
プラグインマネージャー
- folke/lazy.nvim
- wbthomason/packer.nvim、tani/vim-jetpackと渡り歩いて今はコレ。
- 特にこだわりはないです。
- wbthomason/packer.nvim、tani/vim-jetpackと渡り歩いて今はコレ。
プラグイン
カラースキーム
- rose-pine/neovim
- morhetz/gruvbox、sainnhe/sonokai(Shusia)と渡り歩いて、今はコレ。
- たまたまこのブログを作るときにコードブロックのテーマにRose Pine Moonを使ったをきっかけに知ったのですが、見やすくてお気に入りです。
- ダークテーマが2種(
main
とmoon
)ありますが、moon
のほうがコントラストが低くてオススメです。
- morhetz/gruvbox、sainnhe/sonokai(Shusia)と渡り歩いて、今はコレ。
タブバー
- akinsho/bufferline.nvim
- デフォルト設定で使ってます。
ステータスバー
- nvim-lualine/lualine.nvim
section_separators
とcomponent_separators
を空文字にして使ってます。
インデント可視化
- lukas-reineke/indent-blankline.nvim
- この設定をそのまま使っています。
モーション
- smoka7/hop.nvim
<Leader>m
で:HopCamelCase
を呼び出して使ってます。
Tree-sitter
ファジーファインダー
-
キーバインドはこんな感じ
keymap.set('n', '<Leader>ff', builtin.find_files, {})
keymap.set('n', '<Leader>fg', builtin.git_files, {})
keymap.set('n', '<Leader>fr', builtin.live_grep, {})
keymap.set('n', '<Leader>fb', builtin.buffers, {})
keymap.set('n', '<Leader>fh', builtin.help_tags, {})
keymap.set('n', '<Leader>e', builtin.diagnostics, {})
keymap.set('n', '<Leader>o', builtin.treesitter, {})
ファイルツリー
- nvim-tree/nvim-tree.lua
<Leader>t
でトグル。
LSP
-
ちょっと前まではcoc.nvimを使っていて、手軽なのはよかったのですが、私の環境だとある程度大きいコードベースになると作業に差し障るレベルで重くなるので、built-in LSPを何とか設定して使っています。
- mason.nvimのおかげか、以前よりだいぶ設定が楽になった気がします。気のせい?
終わりに
- 以前はさらにスクロールバーやミニマップも入れてましたが、整理しました。
- プラグインは結構削ったつもりなのですが、それでも結構入ってますね。
- 書いてて思ったのですが、キーバインドに統一性というか、思想がないですね。
- 特にLSPとtelescope。ちゃんと煮詰めたい。
序
リポジトリ
キーバインド
プラグインマネージャー
プラグイン
カラースキーム
タブバー
ステータスバー
インデント可視化
モーション
Tree-sitter
ファジーファインダー
ファイルツリー
LSP
終わりに