Neovimのコマンドライン中央化!tiny-cmdline.nvimの使い方

最近新しいNeovimプラグイン触れてないな〜と思ったら、tiny系プラグイン(※)の作者rachartierさんが新しいプラグイン出してました。
その名もtiny-cmdline.nvim。コマンドラインを中央に表示させるプラグインです。

tiny-cmdline.nvimの使用例

tiny-code-action.nvimtiny-inline-diagnostic.nvimなど。

## tiny-cmdline.nvim とは

tiny-cmdline.nvimは、:を入力したときのコマンドラインを中央に表示できるプラグインです。

noice.nvimからコマンドライン中央化だけ切り取った感じのシンプルな機能です。

Neovimのv1.0.12から入ったui2前提のプラグインです。

### コマンドラインの中央化

ほぼ好みみたいなものですが、「中央にあると視線移動が少ない」のがメリットかなと個人的に思ってます。

## 検索でも中央化できる

設定すれば/?の検索も中央表示にできます。

## 導入方法

リポジトリ名だけコピペしたい人向け
rachartier/tiny-cmdline.nvim

各々が使っているプラグインマネージャーでインストールしていきます。

### 依存

まず依存について。
依存プラグインはありませんが、いくつか条件があります。

  • Neovim v0.12以上
  • ui2の有効化
  • cmdheight=0(推奨)

ui2はNeovimの0.12から入った実験的なUI変更のやつです。

require("vim._core.ui2").enable({})

UI2だとPress ENTERとかが無くなったり、入力に合わせてコマンドラインにハイライトが効くようです。

### インストール

READMEに数パターン書いてあるので、まずはそちらをご覧ください。

ここにはlazy.nvimを使った筆者の設定を書いておきます。

lazy.nvimの例
---@module "lazy"
---@type LazyPluginSpec
return {
"rachartier/tiny-cmdline.nvim",
config = function()
vim.o.cmdheight = 0
require("tiny-cmdline").setup({
on_reposition = require("tiny-cmdline").adapters.blink,
native_types = {},
})
end,
}

### blink.cmpの場合

blink.cmpユーザーは次のようにアダプタを設定しましょう。

require("tiny-cmdline").setup({
on_reposition = require("tiny-cmdline").adapters.blink,
})

### 検索の中央化の設定

native_typesを空にすれば、/?でも中央化できます。

require("tiny-cmdline").setup({
native_types = {},
})

## noice.nvimからの移行

以前はnoice.nvimを使ってました。不満があったわけではありませんが、次のように移行しました。

noice.nvimだと:luaと打つと:luaの部分を隠す、みたいな挙動や設定がありました。tiny-cmidline.nvimにはそういった機能は無く、シンプルに中央化のみです。


以上、tiny-cmdline.nvimの紹介でした。

コマンドライン中央化に関してはしばらくこれでいこうと思います。
通知フィルター周りについは「どのメッセージがどこに表示されるのか?」みたいのを分かりきっていないため、もう少し時間かけて記事にしたい。