効率の悪い移動を繰り返すと自責の言葉を表示するVimプラグイン


アドベントカレンダー初参加です。

はじめに

みなさんは効率の良い・素早い移動を心がけているでしょうか?

本記事で吊るし上げる「効率の悪い」移動とは、

h/j/k/lを連打もしくは長押しすること

です。

効率の悪い移動を控えるように矯正し、f/F、その他検索やジャンプなどを使う癖をつけたいものです。

動作例

自責の言葉やフロートウインドウの大きさ、効率の悪い移動の許容範囲・回数は変更可能です。

「自責」1

自分で自分のあやまちを責めること。

似た言葉
恥じる 恥じ入る 慙愧 悔いる 悔やむ

矯正方法の例

  • h/j/k/lを無効化する
    • 突然なくなるのは苦しいかもしれません。
  • h/j/k/lを押すと保存せずにVimを閉じる
    • どこかの記事でみた気がしますが、過激過ぎます。
  • h/j/k/lをある回数以上繰り返したときに自責の言葉を表示する
    • 本記事で紹介する方法(プラグイン名: vim-hjkl-warning)です。

仕組み

移動する度に移動距離の測定と回数のカウントを行い、効率の悪い移動を繰り返し行った時に自責の言葉を表示するようにしています。

設定例1

let g:hjkl_warning_win_width    = 10
let g:hjkl_warning_win_height   = 3
let g:hjkl_warning_min_column   = 5
let g:hjkl_warning_min_line     = 2
let g:hjkl_warning_max_repeat   = 8
let g:hjkl_warning_message      = ["わたしには", "学習能力が", "ありません"]
let g:hjkl_warning_enable_title = v:false

横方向に5文字未満、もしくは縦方向に2文字未満の移動を8回を超えて連続で繰り返した時、以下のように表示されます。

設定例2

let g:hjkl_warning_win_width    = 2
let g:hjkl_warning_win_height   = 1
let g:hjkl_warning_min_column   = 3
let g:hjkl_warning_min_line     = 1
let g:hjkl_warning_max_repeat   = 5
let g:hjkl_warning_message      = ["😡"]
let g:hjkl_warning_enable_title = v:false

横方向に3文字未満、もしくは縦方向に1文字未満(つまり縦方向では判定されない)の移動を5回を超えて連続で繰り返した時、以下のように表示されます。

リポジトリ

おわり

記事を読んでくれてありがとうございます😊

プラグインを作ったのは初めてで、かつあまり時間を割けなかったため、作りが甘い・良くない可能性が高いと思っています。例えば、pluginディレクトリとautoloadディレクトリの違いをあまり理解せず、全てpluginディレクトリの1ファイルで済ませてしまっています(これを逆手にとり、「そんな感じでもプラグイン作れるんだ」という気軽な気持ちでプラグイン作成に挑戦してみても良いと思います🙂)。

ご意見やアドバイスなどあれば、ぜひコメントしてください。

ここまで読んでくださってありがとうございます!

Twitterフォローしていただけると嬉しいです!
https://twitter.com/_matoruru