私は最近いくつかのVIMハッカリーを学び、多くの便利なコマンドを学び、VIMでテキストを編集するのにかなり効率的になりました。私はフィンランドのqwertyキーボードレイアウトを使用しています(下の画像を参照) )これはプログラミングにとってかなり恐ろしいことです。通常のコーディング特殊文字()[]{}/\
はすべて、いずれかを押すことで発生します。 shift または alt gr と number キーですが、私はすでにそれにかなり慣れています。キーボードのレイアウトを変更したくないのは、母国語での書き込みとIRCチャットが非常に多く、そのためにはä
とö
が必要だからです。文字(å
は私には役に立たず、スウェーデン人だけがそれを使用します)。
私の問題は、いくつかのVIMコマンドには、デフォルトでかなり難しいキーマッピングがあります。たとえば、go-to-tag-under-cursor is ^]は、次のように変換されます。 Ctrl-AltGr-9 フィンランド語のキーボードで。これは私が押す必要があります left control 左手でキー、 alt gr 右手の親指で右手の人差し指を number 9 キー。これは、emacsを使用したり、クラシックギターを演奏したりするような感覚です。人間工学的ではありません。
キーボードレイアウトは次のようになります。
注:青色でマークされているキーは、を押すと書き込まれます AltGr (右alt)と適切なキー。赤いものは、2キーのコンポーズキーまたはデッドキーであり、自分でキャラクターを出すことはありません。 F.ex. ü
文字を入力するには、最初に ¨^~ キーを押してから u。アクセントキーも同様です。これらのデッドキーはVIMではマッピングできません。
つまり、基本的に3つの追加のアルファベットキーがあります(äöå)利用可能ですが、複数回マッピングすることはできません。修飾キーは(VIMでは)機能しません。何かをä
にマップできますが、Ä
または<C-ä>
にはマップできません。
現在、フィンランド語/スウェーデン語またはその他の米国以外のキーボードレイアウトユーザーからのVIMセットアップのアイデアを探しています。キーマッピング、.vimrcのヒント、その他役立つと思われるものを共有してください。 。
コーディング時にはキーボードをUSレイアウトのままにし、アクセント付き文字やその他の言語固有の文字を必要とするテキストを作成する場合にのみローカルレイアウト(イタリア語)に切り替えます。結局のところ、切り替えるのはキーを押すだけであり、プログラミングの米国のレイアウトに勝るものはありません。少し試してみましたが、これを回避するために多くのマッピングを指定することは、必要に応じて完全なレイアウトを切り替えるよりもはるかに面倒であることがわかりました。
VIMでlangmapとkeymapの設定を使用できます。コレマックに使っています。独自のレイアウトを指定できます。
h keymap
h langmap
私の解決策は、USレイアウトとFIN/SWEレイアウトのカスタムミックスを使用することです。非常にうまく機能します(または少なくとも恐ろしいフィンレイアウトよりも優れています)。
その画像にはおそらく私がしているすべてのキャラクターが含まれているわけではありませんが、とにかくそれらのほとんどが含まれています。
これに対する私の解決策は、米国のレイアウトの最良の側面をフィンランドのレイアウトに組み合わせたカスタムキーボードレイアウトを作成することでした。それの良いところは、学習曲線が実質的に存在しないように、変更を最小限に抑えることです。
その背後にある哲学は、AltGr
を使用する必要性を最小限に抑え、それでも可能な限り標準のFinレイアウトに近づけることでした。また、AltGr
の下にいくつかのキーがありますが、修飾子を親指で押したまま、右手で不自然に押す必要はありません。
レイアウトを作成するために使用したプログラムは、macOSの場合は kelele 、Windowsの場合は Microsoft Keyboard Layout Creator でした。私はそれをFinner.keylayout
/Finner.klc
と呼んでいます。
変更されたキーが強調表示された基本的なレイアウト(修飾子の下にさらに多くのキーがあります)は次のとおりです。
実用的な一時的なギャップとして、単にレイアウトを切り替えることはできませんか?
たとえば、Ubuntuでは、Preferences → Keyboard → Layouts → Options → Key(s) to change layout
に移動することで、レイアウトを簡単に切り替えるためのホットキーを設定できます。私は両方のShiftキーを使用してレイアウト間をすばやく移動します。また、各ウィンドウに独自のレイアウト設定を設定するオプションもあります。これは、ドキュメントやメールなどを作成するときに、Vimで米国英語のレイアウトでプログラミングしている場合に適しています。別のレイアウトの他のウィンドウで。 (コードコメントなどのために)レイアウトを切り替える必要がある場合でも、両方のShiftボタンを押して続行するのにほとんど手間がかかりません。
他のデスクトップ環境/オペレーティングシステムでこれを構成する同様の方法があるはずです。
これらのctrl-コンボを他のキーバインディングにマッピングしただけです。
例えば、 ctrl-] にマッピングされます meta- down 。