torikatsu923.dev

サイト内検索

    vimでアルファベット26文字を最小キーストロークで入力する方法

    みなさんはvimで以下のようにアルファベットを入力したくなったことがありませんでしょうか。ありますよね(圧)ということで本記事ではvimでアルファベットを最小キーストロークで入力していく方法について深めていきます。

    こんにちは、とりかつです。

    みなさんはvimで以下のようにアルファベットを入力したくなったことがありませんでしょうか。ありますよね(圧)

    abcdefghijklmnopqrstuvwxyz

    ということで本記事ではvimでアルファベットを最小キーストロークで入力していく方法について深めていきます。

    本記事ではノーマルモードから始まり、ノーマルモードに終わることを前提とします。

    一番シンプルな方法

    まずは、普通に打ってみましょう。

    iabcdefghijklmnopqrstuvwxyz<Esc>

    キーストロークは28です。 ですが、a~zまで間違えずに高速入力するのは至難の技です。 TypoScripterならなおさらです。

    <C-a>でアルファベットをインクリメンタルする方法

    vimでは以下のコマンドで、アルファベットを<C-a>でインクリメンタルできるようになります。

    :set nf=alpha

    (アルファベットをインクリメンタルする機会はあまりないうえに、数字をインクリメンタルできるほうがクソ便利なので、.vimrcに書くのはお勧めしないです。)

    ということでやってみましょう。 キーストロークの合計は31です。愚直に打ち込むより少し長くなってしまいました。

    :set nf=alpha<CR>ia<Esc><fd-61>qqylp<C-A>q24@q

    ここで:h setをみてみましょう。

    :h set

    なんということでしょう!setのtは省略可能ではありませんか! ということで、先程のキーストロークは以下の30文字になりました。

    :se nf=alpha<CR>ia<Esc><fd-61>qqylp<C-A>q24@q

    マクロ使わずに<C-a>

    発想の転換です。 さっきはマクロを使っていましたが、今度はマクロを使わずに、アルファベットをインクリメンタルする方法をやってみます。

    :se nf=alpha<CR>ia<Esc>Y25pVGg<C-A>k26gJ

    キーストロークは27になりました! アルファベット直打ちに近づいてきました。

    g??入力

    今度は、g??を使うやり方をやってみます。 g??はRot13変換をしてくれるコマンドです。

    詳しくは以下のヘルプを…

    :h g??

    rot13変換は以下のように、アルファベットを13個後ろのアルファベットに置き換える暗号化方式です。

    amはnzに変換されます。 これを利用すれば入力回数を減らせそうです。

    iabcdefghijklm<Esc>y0g??P

    キーストロークは21です。 ついに直打ちよりも少ないキーストロークで入力できるようになりました! さりげなく、rot13を使ってアルファベットを入力できたら、合コンでモテモテ間違いなしですね!

    コピペしちゃう

    最後の方法はa~zをコピペしちゃう方法ですw

    手元でvimを開いている方は以下のヘルプを表示してみてください。

    :h <_

    …

    …

    …

    :h <_

    なんということでしょう!カーソルの2行下にa~zの文字列が存在するではありませんか!

    ということで、コピペ戦略を実践してみます。

    :h<_<CR>jjYZZP

    なんと!!わずか11回の入力でazの文字列を入力することに成功しました! タイポの心配もなく、安定してazを入力できる最高の方法ですねw

    おわりに

    今回の記事ではvimでa~zを入力する方法をいくつか紹介してみました。その中で最小キーストロークは11でした。

    最後のコピペの方法を初めて知った時、「そんなのありかよwww」ってなりました。 目から鱗とはまさにこのことですね。

    vimでa~zを最速入力する方法がヘルプからコピペで、そんなのありかよってなった

    — Torikatsu (@torikatsu923) 2021年2月14日

    もしかしたら、もっと早い入力方法があるかもしれませんね。

    それではよいvimライフを!

    -––