Neovim設定メモ in 202401

  • 春あたりに職場で大規模なPC刷新がありそうなので、年末年始でNeovimの設定ファイルを整理しました。
  • プラグインは実装がLuaのものをなんとなく優先して使っています。
  • ターミナルエミュレータは、Win(WSL)ではAlacrittyを、MacではiTerm2を使っています。
  • コーディング用のフォントはHackNerd 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>')

プラグインマネージャー

プラグイン

カラースキーム

  • rose-pine/neovim
    • morhetz/gruvboxsainnhe/sonokai(Shusia)と渡り歩いて、今はコレ。
      • たまたまこのブログを作るときにコードブロックのテーマにRose Pine Moonを使ったをきっかけに知ったのですが、見やすくてお気に入りです。
      • ダークテーマが2種(mainmoon)ありますが、moonのほうがコントラストが低くてオススメです。

タブバー

ステータスバー

インデント可視化

モーション

  • 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, {})

ファイルツリー

LSP

終わりに

  • 以前はさらにスクロールバーやミニマップも入れてましたが、整理しました。
    • プラグインは結構削ったつもりなのですが、それでも結構入ってますね。
  • 書いてて思ったのですが、キーバインドに統一性というか、思想がないですね。
    • 特にLSPとtelescope。ちゃんと煮詰めたい。