Vimのノーマルモードへの切り替えを簡単にする

ソフト使用法
スポンサーリンク

この記事ではVim使用時に@キーに「Esc」と「IME-オフ」を割り当て、ノーマルモードに戻るときは@を押せばすむようにする設定について書いてあります。

環境はWindows8.1 CygwinのVimです。

概要
・IME-オフをキーに割り当てる
・AutoHotkeyで@に「Esc」と「IME-オフ」を割り当てる

スポンサーリンク

IME-オフを割り当てる

たぶん「IME-オフ」がキーに割り当てられてないのでそれを行います。(割り当てられてる人は読み飛ばしてください)

タスクバーの IMEアイコンを右クリック。メニューから「プロパティ」をクリック。

「詳細設定」をクリック。

「全般」タブの 編集操作 の 「変更」をクリック。

「キー設定」タブが開かれるのでIME-オフを割り当てるキーを選択します。この記事では
「無変換」キーに割り当てています。なので以降この前提で説明していきます。

無変換の右隣のセルをフォーカスした状態で「変更」をクリック。

「機能選択」ダイアログで「IME-オフ」にフォーカスした状態で「OK」をクリック。

「設定」ダイアログで「無変換」の右が「IME-オフ」になったのを確認してから「適用」をクリック。「OK」をクリックしてダイアログを閉じます。 

IME-オフをキーに割り当てる操作は以上です。割り当てが成功していれば、全角モードになっている状態で「無変換」キーを押せば半角なります。「半角/全角」キーと違って何回押しても半角のままです。

次はAutoHotkeyをインストールします。AutoHotkeyは1つのキーに2つのキーを割り当てたりできるユーティリティソフトです。

スポンサーリンク

AutoHotkeyを使った割り当て

AutoHotkeyのダウンロード

AutoHotkeyのページからダウンロードします。「Download」をクリック。 

ダウンロードするバージョンを選択します。「Download Current Version」をクリック。

ダウンロードした実行ファイルを実行してインストールします。

AutoHotkeyで@キーにEscとIME-オフを割り当てる。

AutoHotkeyのスクリプトを書きます。テキストエディタで新しいファイルを開き、以下のコードを貼り付け 拡張子 「.ahk」で保存します。

$@::
if  ( WinActive("ahk_class mintty")  ){
  Send,{Esc}
  Sleep 1
  Send,{sc07B}
}else{
  Send,{@}
}
Return

$sc070::
if  ( WinActive("ahk_class mintty")  ){
  Send,{@}
}else{
  Send,{sc070}
}

Return

上のコードの意味はCygwin(ahk_class mintty)にフォーカスがあるときは@キーを押したら「Esc」と「無変換」(上でIME-オフに設定してある)が押されたことにする。
Cygwin以外のアプリにフォーカスがあるときは@が押されたことにするというものです。

これだけだとVimで@をタイプできなくなるので下のブロックでキーコードsc070(カタカナひらがなキー)が押されたときは@が押されたことにしています。

(割り当てるキーコードはこちらのページにあります)

スクリプトを実行

このスクリプトをエクスプローラーでフォーカスしenterすればそれで実行できます。スタートアップフォルダに置いておけばpcを起動すれば自動的にスクリプトも実行されます。

この設定でVimを使うと、@キーを押せば「Esc」と「IME-オフ」が同時に押されたことになり簡単にノーマルモードに戻れます。

この記事は以上です。