[[mini.nvim]]を入れて色々と試してみる。
## インストール
READMEより。
<div class="link-card">
<div class="link-card-header">
<img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/>
<span class="link-card-site-name">GitHub</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">GitHub - echasnovski/mini.nvim: Library of 35+ independent Lua modules improving overall Neovim (version 0.7 and higher) experience with minimal effort</p>
</div>
<div class="link-card-description">
Library of 35+ independent Lua modules improving overall Neovim (version 0.7 and higher) experience ...
</div>
</div>
<img src="https://repository-images.githubusercontent.com/378088544/594bf345-4052-49dd-85ee-b5ab86137f3b" class="link-card-image" />
</div>
<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ライクで興味深いので、しばらく試してみる。