2012-05-10 15 views
7

Vimでコードを編集するとき、すべてのCapsでstuffを書くときにcaps lockを使用することがよくあります。しかし、私はしばしば大文字で書かれた部分が終わったときに大文字のロックを切ることを忘れてしまいます。これは痛みの終わりを引き起こさない(つまり、jが下に移動するが、Jは現在の行と下の行を結合するため)。Vimrc関数でCaps Lockを検出する方法

通常、挿入モードを終了すると、caps lockがオフになります。 .vimrcに何かを追加すると、挿入モードを終了するときに大文字のロックを解除することができますか?代わりに、どうすれば自分の.vimrcに何かを追加して、インサートモードを終了する時にcaps lockを持っていれば私に警告する(ステータスライン?ビープ音?

ありがとうございます!

+0

挿入モードを終了するときに 'autocmd InsertLeave'を使用してアクションを実行できますが、変更キーであるためvim内でキャップをオン/オフする方法はないと思います(あなたはOS特有の方法です)。 – Benj

+3

なぜあなたは通常の入力をしてテキストの大文字/小文字を変更する習慣をとらないのですか? – romainl

+0

[This](http://superuser.com/questions/399903/how-do-i-represent-the-capslock-key-for-vim-key-mappings)が役立ちます。 –

答えて

4

他のアプリケーションと同じように、Vim/GVIMはターミナル/ウィンドウマネージャの抽象概念の上に位置し、基本の生のキーボード機能に直接アクセスすることはできません。だから、Caps Lock情報を得るには、面倒でプラットフォーム固有のハックが必要になります。

代わりに、Vimの機能を使ってVim内のCaps Lockを "エミュレート"することをお勧めします。これはあなたが言及した問題がないためです。詳しくは、Insert-mode only Caps Lockの記事をご覧ください。

+0

ありがとう! caps lockエミュレーションを呼び出すためのkeymapping(ctrl + ^)。これを行うには、caps lockキー自体を使用する方法がありますか?(OSレベルの別のキーに再マッピングする必要はありません)。 –

+0

@Sam:Windowsでは、AutoHotkeyスクリプトを使ってVimがアクティブになっているときにのみ、Caps Lockキーを選択的に再マップすることができますが、多くのdie-hard Vimユーザーはこのキーが元の使用にはあまりにも価値があると主張します。 Ctrlキーを押しながらEscキーを押します(私は後者を行います)。その方法については、Vim Tips Wikiの記事もあります。 –

+0

これは理にかなっています - 過去にAHKを使ったようなものでした。知ってる? –

関連する問題