25

vim wikiのヒントを見ましたが、EscをCAPS LOCKに再マップするには、次の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の行を追加または変更するだけで、EscをCAPS LOCKに再マップすることは可能ですか?

4

7 に答える 7

27

これにはAutoHotkeyを使用することをお勧めします。

アプリケーションごとのホットキーの変更を行うことができます。

SetTitleMatchMode,2
#IfWinActive,VIM
   CAPSLOCK::ESC
return

#IfWinActive
   CAPSLOCK::CTRL
return

たとえば、このスクリプトは、vimでエスケープし、他のすべての場所を制御するようにキャップを設定します。

于 2010-01-27T07:01:37.727 に答える
2

capslockキーにはvimキー識別子がないため、スキャンコードを使用して行う必要があります。

これは、CtrlキーまたはShiftキーを何かにマップしようとするようなものです。これらのキーは、それ自体では何も実行せず、キー修飾子であるため、同じ方法でトラップすることはできません。

于 2010-01-27T07:01:40.630 に答える
2

マッピングはvimではなくOSレベルで行う必要があるため、複雑さはOSにあります。たとえば、私のUbuntuマシンでは、次のようになっています~/.Xmodmap

! Esc on caps lock
remove Lock = Caps_Lock
keysym Caps_Lock = Escape

ただし、REGEDITスクリプトはそれほど悪いとは思いません。ちょっと醜いですが、たった2行です!

于 2010-01-28T00:51:27.700 に答える
1

Ctrl-Cを使用してエスケープすることもできます(少なくともvimで使用可能)。これは私が普段使っているものです。ただし、私は通常、controlとcapslockを交換し、Windowsのレジストリ設定とubuntuのキーボード設定を使用して交換しました。

編集:@mMontuが親切に指摘しているように、Ctrl-CはEscよりも残酷です:この適切な質問で述べられているように、

vimは、略語の一部を書いたかどうかをわざわざチェックすることはなく、挿入モードを終了するたびにプラグインが設定した派手な自動コマンドを実行することもありません。

私のvimmingはまだそれほど進んでいないので、私は気づいていませんでした。

于 2010-11-05T14:10:50.790 に答える
1

また、これを試すことができます:SharpKeys。CapLockとEscを交換しました。

于 2010-11-23T12:17:03.147 に答える
1

私にとってうまくいった別の選択肢は、 このウェブサイトにある指示を使用することでした

基本的に:MicrosoftのKeyboard Layout Creatorをインストールしてから、そのソースコードを編集して、CAPS LOCKを再マッピングできるようにし、独自のカスタムレイアウトを作成します。

于 2014-06-19T16:21:44.943 に答える
0

CAPSLOCKWindowsへの再マップESCおよびCTRLWindowsでの再マップ

この回答ですでに説明した非常に優れたツールを使用するとCAPSLOCK、両方に再マップすることができます

  1. ESC(単独で押すと)そして
  2. to CTRL(他のキーで押した場合)

ililimによるこの小さなオープンソースソフトウェアを使用してください。

ESCこれには管理者権限は必要ありませんがCTRL、引き続き期待どおりに機能しています。

ピンキーを傷つけずに便利なCTRL + anythingプレスを楽しんだり、MobaXtermのssh経由で使用するVimのモードを切り替えたりするために使用します。インストールについては、この説明に従ってください。

于 2020-05-19T14:24:40.067 に答える