vimでcapにcapに再マップするのがそれほど複雑なのはなぜですか?
質問
Vim Wikiのヒントを見ましたが、ESCをキャップロックに再度再マップするには、次のWindowsコードを編集する必要があると述べています。
REGEDIT4
[HKEY_CURRENT_USER\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,01,00,3a,00,00,00,00,00
_VIMRCにラインを追加または変更するだけで、CAPSロックにESCを再度再マッピングすることは可能ですか?
解決
これにはAutoHotkeyを使用することをお勧めします。
アプリケーションごとのホットキーの変更を行うことができます:
SetTitleMatchMode,2
#IfWinActive,VIM
CAPSLOCK::ESC
return
#IfWinActive
CAPSLOCK::CTRL
return
たとえば、このスクリプトは、VIMで脱出し、他のどこでも制御するキャップを設定します。
他のヒント
CapsLockキーにVIMキー識別子はないため、スキャンコードでそれを行う必要があります。
CTRLキーまたはシフトキーを何かにマッピングしようとするようなものです。これらのキーは自分で何もしない、キー修飾子であるため、同じ方法で閉じ込められません。
マッピングはVIMの代わりにOSレベルで行う必要があるため、合併症はOSから生まれます。たとえば、私のubuntuマシンには次のものがあります ~/.Xmodmap
:
! Esc on caps lock
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
しかし、Regeditスクリプトがそれほど悪いとは思わない。それはちょっと醜いですが、それはたった2行です!
また、これを試すことができます: シャープキー。キャップロックを交換してエスクしました。
Ctrl-Cを使用して脱出することもできます(少なくともVIMで利用可能)。これは私が通常使用するものです。しかし、私は一般的にコントロールとCapslockを交換し、UbuntuのWindowsとKeyboard Confのレジストリ設定を通じてそうしました。
編集:@mmontuが親切に指摘しているように、Ctrl-CはESCよりも残忍です: この適切な質問,
Vimは、略語の一部を書いたばかりであるかどうかを確認することはできません。また、挿入モードを離れるたびにプラグインが設定したファンシーオートコマンドを実行することはありません
私のVimmingがまだそれほど進んでいないので、私は気づいていませんでした。
私にとってうまくいった別の選択肢は、で見つかった指示を使用することでしたこのウェブサイト
基本的に:Microsoftのキーボードレイアウト作成者をインストールし、ソースコードを編集して、Caps Lockの再マッピングを許可し、独自のカスタムレイアウトを作成します。