「Vimをcolemakで快適に使う方法」をGeminiに尋ねた。今回はqwerty以外のキー配列の代表としてcolemakを選んだが、colemak以外にも応用できるはず。ただし、筆者は内容の正しさを検証していない。以下、見出しの構成を変えた以外、回答原文そのまま。
VimをColemak配列で快適に使うための方法は、主に以下の2つの考え方に分かれます。
どちらを選ぶかは、Vimの基本的な操作体系(特にニーモニック=機能と文字の関連性)を維持したいか、それともホームポジション周辺で操作を完結させたいかによります。
選択肢 1: キーマップを再定義しない(推奨されることが多い方法)
この方法は、Vimのコマンド(ニーモニック)の関連性を維持することを重視し、Colemak配列の新しいキー配置に慣れることを選びます。
メリット
- Vimの基本を維持できる: d (delete)、c (change)、w (word)などのコマンドが、キーボード配列に関わらず機能と一致するため、記憶しやすい。
- 他の環境でも使える: サーバーや他のPCなど、カスタム設定がないVimでも操作が通じる。
デメリット
- hjklの配置が不便: QWERTYのホームポジションにあった移動キーhjklがColemakでは散らばり、特にj(下)とk(上)の配置がQWERTYとは逆になり、指の移動が増える。
快適にするための工夫 - hjkl以外の移動を多用する:
- 単語移動: w (次単語へ), b (前単語へ)
- 行頭/行末: 0 / $
- 検索: /
- 行内移動: f / t (文字指定)
- EasyMotionなどのプラグインを導入し、hjklの使用頻度を減らす。
- 矢印キー(カーソルキー)を使う: 極端に移動が大変な場合は、矢印キーを使うのも一つの手です。(Vimのエキスパートには好まれませんが、実用性を優先して問題ありません。)
選択肢 2: ホームポジション周辺に移動キーを再マップする
Colemak配列のホームポジション周辺にあるキーをhjklの代替として再定義することで、指の移動を最小限に抑えます。
1. hjklの代替キーを選ぶ
Colemakのホームポジション周辺には、QWERTYでのijklにあたるキー(ColemakではNEIO)が便利です。
- h (左) → N (ColemakではQWERTYのJの位置)
- j (下) → E (ColemakではQWERTYのKの位置)
- k (上) → I (ColemakではQWERTYのLの位置)
- l (右) → O (ColemakではQWERTYの;の位置)
または、NEIOではなく、QWERTYのhjklの位置に近いColemakのキー(UNEI)を使う方法もあります。
2. .vimrc(またはinit.vim)に設定を追加する
選んだ代替キーを使って、Vimのキーマッピングを変更します。
例: UNEIを使う場合
ColemakのU、N、E、Iを移動キーとして使うための設定例です。
" Colemak配列での移動キーの再マッピング
" (QWERTYのH J K Lに相当するキーの位置にあるColemakのキーを使う例)
" QWERTY: h j k l
" Colemak: u n e i
" [ノーマルモード]
nnoremap u h " 'u' を 'h' (左) にマッピング
nnoremap n j " 'n' を 'j' (下) にマッピング
nnoremap e k " 'e' を 'k' (上) にマッピング
nnoremap i l " 'i' を 'l' (右) にマッピング
" [ビジュアルモード]
vnoremap u h
vnoremap n j
vnoremap e k
vnoremap i l
3. プラグインを利用する
自分で設定するのが難しい場合は、Colemak向けの設定を提供しているプラグインがあります。
- linduxed/colemak.vim や jooize/vim-colemak など。
ただし、これらのプラグインは他のVimの機能やプラグインとキーマッピングが衝突する可能性があるため、注意が必要です。
結論
Colemakユーザーの多くは、Vimの機能的なニーモニックを維持するため、**キーマップを再定義しない(選択肢 1)**ことを推奨しています。これにより、hjklの使用を最小限に抑えるようVimの使い方自体が洗練されていく傾向があります。
しかし、もし快適なホームポジションでの移動を最優先にするなら、選択肢 2のようにキーマッピングを再定義することをおすすめします。
以下、筆者のコメント
手間がかかるので強く勧めはしないが、レイヤーを作って、何かのキーを押しているときはqwerty、もしくは、押しやすい位置にカーソルとするのも手の一つかもしれない。
vim使いがqwertyから離れられないとのことで、
気になり調べてみたが、筆者はvim使いでなく、使用感は試していない。