[[mini.nvim]]を入れて色々と試してみる。
## インストール
READMEより。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" />
<span class="link-card-v2-site-name">GitHub</span>
</div>
<div class="link-card-v2-title">
GitHub - nvim-mini/mini.nvim: Library of 40+ independent Lua modules improving Neovim experience with minimal effort
</div>
<div class="link-card-v2-content">
Library of 40+ independent Lua modules improving Neovim experience with minimal effort - nvim-mini/mini.nvim
</div>
<img class="link-card-v2-image" src="https://repository-images.githubusercontent.com/378088544/4b3b5812-a478-4919-80f9-c63bea74218c" />
<a href="https://github.com/echasnovski/mini.nvim/tree/main"></a>
</div>
## 導入したモジュール
以下の4つ。
- [[mini.clues]]
- [[mini.files]]
- [[mini.indentscope]]
- [[mini.cursorword]]
## 設定
[[init.lua]]はこんな感じ。
```lua
{
'echasnovski/mini.nvim',
version = false,
event = { 'BufNewFile', 'BufRead' },
keys = {
-- mini.filesオープン用のショートカット
{ '<C-j>w', ':lua MiniFiles.open()<CR>' }
},
config = function()
local miniclue = require('mini.clue')
require('mini.clue').setup({
window = {
-- 1000は遅いので500にする
delay = 500
},
triggers = {
-- Leader triggers
{ mode = 'n', keys = '<Leader>' },
{ mode = 'x', keys = '<Leader>' },
-- Built-in completion
{ mode = 'i', keys = '<C-x>' },
-- `g` key
{ mode = 'n', keys = 'g' },
{ mode = 'x', keys = 'g' },
-- Marks
{ mode = 'n', keys = "'" },
{ mode = 'n', keys = '`' },
{ mode = 'x', keys = "'" },
{ mode = 'x', keys = '`' },
-- Registers
{ mode = 'n', keys = '"' },
{ mode = 'x', keys = '"' },
{ mode = 'i', keys = '<C-r>' },
{ mode = 'c', keys = '<C-r>' },
-- Window commands
{ mode = 'n', keys = '<C-w>' },
-- `z` key
{ mode = 'n', keys = 'z' },
{ mode = 'x', keys = 'z' },
},
clues = {
-- Enhance this by adding descriptions for <Leader> mapping groups
miniclue.gen_clues.builtin_completion(),
miniclue.gen_clues.g(),
miniclue.gen_clues.marks(),
miniclue.gen_clues.registers(),
miniclue.gen_clues.windows(),
miniclue.gen_clues.z(),
},
})
require('mini.files').setup({
mappings = {
-- ファイルを開くのはEnterでないとキツイ
go_in_plus = '<CR>',
},
})
require('mini.indentscope').setup()
require('mini.cursorword').setup()
-- デフォルトのハイライトは薄すぎて見えないのでカスタマイズ
vim.cmd [[highlight MiniCursorword guibg=darkcyan guifg=lightgray]]
end
}
```
基本は設定どおりだが何か所か修正。詳細はコメントを参照。
[[mini.clues]]と[[mini.indentscope]]は新しい機能なので様子見。直感的にはどちらも役立ちそうな気がしている。
[[mini.files]]は[[nvim-tree.lua]]と引き換えにインストールしたので困ったことが出てくるかもしれない。分割Openなどのコマンドはなさそうだし、ファイル操作は[[挿入モード]]で直接ファイルツリーを変更していく方式だから癖はありそう。1ファイルをいじる場合は面倒かもしれないけど、これはこれでVimライクで興味深いので、しばらく試してみる。