輪ごむの空き箱

キーマッピングを設定しないVimmerが居たっていい


この記事はVim駅伝2023年06月02日の記事です。

前回の記事は mityu さんの「Zsh on :terminal on Vim でカレントディレクトリを Vim と同期する」という記事でした。

次回の記事は 6/5 に投稿される予定です。

はじめに

キーマッピングを設定せずにどうやってコーディングをしているのか、どのようにその問題を解決しようとしているのかの過程です。

まだまだ手探り状態です。

キーマッピングを覚えられない

キーマッピングを設定しないVimmerが居たっていいんじゃないでしょうか

自分は設定したキーマッピングをよく忘れます。

全く覚えられません。

プラグインを入れていないのか?ということはなく、そこそこの量を入れています。それらのプラグインをどうやって使っているのかというと、コマンド補完に完全に頼っています。

現在進行形でnvimの設定のプラグインを再選定をしているのですが、プラグインの設定が整っておらず、以前設定していたプラグインのキーマッピングも消失してそれらもコマンド補完で乗り切っています。(:Lspsaga code_actionとか、、、)

ある種縛りのように見えるコーディングスタイルですが、補完プラグインの一つである、nvim-cmpのお陰でそこまで苦労はしていません。nvim-cmpにはhrsh7th/cmp-cmdlinedmitmel/cmp-cmdline-historyというプラグインがあります。 これらのプラグインを導入することによって、コマンドやコマンド履歴を補完することができるので、一度入力したコマンドを次回入力時に補完することができて非常に助かっています。

解決策は?

キーマッピングを可視化してくれるプラグインとして、which-key.nvim があります。キー入力に迷ったとき、自動的に候補がポップアップ表示されるという非常に便利なプラグインなのですが、自分はどうも負けた気がしてしまうため直ぐに消してしまいました。

そして最近、某-jpのtimesチャンネルでキーマッピングの模索をしてたときに、複数の方から「自分はこういう運用をしているよ。」というのを教えてもらいました。

atusyさんは、

telescope.nvimで作る簡易コマンドパレット(VSCodeのCtrl + Shift + Pっぽいの) telescope.nvimはキーマップ、Exコマンド、ファイルなどを検索・活用するためのNeovim用プラグインです。 この内、キーマップ(
ogp

に書いてあるように、telescope.nvimを使ってVSコードのコマンドパレットのようなものを再現していました。

yuki yanoさんは、leximaを拡張して、EXコマンドを自動展開させるlexima-alter-command.vimというプラグインを使っているとのことでした。

そしてmonaqaさんは、

に書いてあるように、プラグインを使わずcabbrevコマンドを使うことによってyuki yanoさんとほぼ同等のことを実現していました。

また、これを書いている今日、kuuさんはコマンド補完とcmdwinを使っているということを教えてもらいました。

どれがいいだろう?

自分はアドバイスをもらったらとりあえずやってみるタイプなので、これらを試そうと思っています。(やることがたまりすぎていて、まだ試せていません)

今回のプラグイン選定ではtelescope.nvimではなくddu.vimを使おうと思っているので、dduでキーマッピングを引っぱってくるソースを作ろうと思います。

まとめ

いかがでしたか?

全く話が着地していませんが、自分の思いとしてはこれからもあまりキーマッピングは設定しない方向性を続けていこうと思います。なにか進展があれば報告しようと思います。

以上!!