VIMエミュレーション用のAutoHotkeyのファイル/exeファイルを設定します。
vim.ahkは、autohotkey(autohotkey_l)の設定ファイルです。
Vim.exeは、Vim.Ahkから作られたスタンドアロンアプリケーションです(リリースページで入手可能)。
これは、Windows用のVIMエミュレーションです。 MACの同じ設定に興味がある場合は、karabinerのVIMエミュレーションを試してください。MACOSのソフトウェア:Karabiner -Elements Complex_Modifications Rules by RCMDNK。
このスクリプトは、AutoHotkey V2用です。
AutoHotkey V1を使用している場合は、リリースV0.13.2(またはAHK_V1ブランチ)を使用してください。
すでにAutoHotkeyをインストールしている場合は、AutoHotkeyでVim.Ahkを開いてください。
Autohotkeyを別のスクリプトで実行している場合は、AutoHotkeyを使用してスクリプトに含めることができます... Users%username%Documentsにvim.ahkとlibディレクトリをコピーしてください。
#Include %A_LineFile%..vim.ahk
自動実行セクションの最後に。
また、autohotkeyでスタンドアロンで動作できるvim_ahk.exeを使用することもできます。
実行可能ファイルを取得するには、[リリース]ページに移動して、最新のzipファイルをダウンロードします。
zipファイルを解凍し、抽出されたvim_ahkフォルダーを好きな場所に配置してから、 vim_ahk.exeを起動します。
注記
VIM_AHK_ICONSフォルダーをVIM_AHK.EXEと同じフォルダーに配置します。それ以外の場合、トレイメニューアイコン機能は機能しません。
clone vim_ahkとgo vim_ahkフォルダー、およびbuild.batを実行します。
.build.bat実行します。vim_ahk.exeおよびvim_ahk_iconsが含まれるVim_ahkフォルダーがあります。
デフォルト設定により、次のアプリケーションのVIM-Modeが可能になります。
それらをタスクトレイアイコンの右クリックメニュー(リスト内のVimMenu - Settings )の右クリックメニューから変更するか、 Ctrl-Alt-Shift-vによって設定ウィンドウを起動できます。
スクリプトでアプリケーションを直接変更する場合は、vim.ahkのVim := new VimAhk()の前にVimGroup変数を追加します(ウィンドウタイトル/クラスはautohotkeyのウィンドウスパイによってチェックできます)、またはvim.ahkを含める前に書き込みます
ラインの例:
VimGroup := "ahk_exe chrome.exe,ahk_exe firefox.exe"
複数のアプリケーションは、コンマ集合で記述できます。
注記
これにより、デフォルトのアプリケーションが上書きされます。これらのアプリケーションをデフォルトのアプリケーションに追加する場合は、アプリケーションの後に次のアプリケーションを追加します。
ahk_exe notepad.exe,ahk_exe explorer.exe,ahk_exe wordpad.exe,ahk_exe TeraPad.exe,作成,Write:,ahk_exe POWERPNT.exe,ahk_exe WINWORD.exe,ahk_exe Evernote.exe,ahk_exe Code.exe,ahk_exe onenote.exe,OneNote,ahk_exe texworks.exe,ahk_exe texstudio.exe
または、以下で説明するGUIオプション設定メニューを使用できます。
VimSetTitleMatchModeのデフォルト設定は2で、一致するメソッドがContainいます。
OneNoteを設定すると、 OneNote ( XXX's OneNoteなど)を含むタイトルのあるすべてのウィンドウが含まれます。 VimSetTitleMatchModeを3に設定すると、 OneNoteの正確なタイトルのみが含まれます。
OneNoteで動作しない場合があります。 OneNoteには、OneNoteの代わりに、ユーザーのノートブック - OneNoteのようなウィンドウ名があります。
その場合、Window SpyでOneNoteのウィンドウタイトルを確認する必要があります。
ウィンドウスパイは、ウィンドウのタイトル、クラス、プロセスについて次のようなものを提供します。
User's Notebook - OneNote
ahk_class ApplicationFrameWindow
ahk_exe ApplicationFrameHost.exe
上記の行のいずれかをvimgroupに追加すると、vim_ahkはoneNoteで動作します。ただし、 ahk_class ApplicationFrameWindowまたはahk_exe ApplicationFrameHost.exeを設定した場合、VIM_AHKは、これらのクラス/プロセス名(Microsoft Storeからインストールされているアプリケーションのほとんど)を使用する他のアプリケーションでも動作します。
アプリケーションの例:
ahk_exe chrome.exeahk_exe firefox.exeahk_exe EXCEL.EXEahk_exe soffice.bin (すべてのlibreofficeアプリケーション用) VimGroupに加えて、スクリプトに設定できる次のオプションがあります。これらはすべて、設定メニューからも変更できます。
| オプション | 説明 | デフォルト |
|---|---|---|
| vimescnormal | 1の場合、Short Press ESCは通常モードを設定し、Long Press ESCはESCを送信します。 | 1 |
| vimsendescnormal | 1の場合、Short Press ESCは通常モードでESCを送信します。 | 0 |
| vimlongescnormal | 1の場合、ESC行動の短いプレスとロングプレスが交換されます。 | 0 |
| vimctrlbrackettoesc | 1の場合、ctrl- [escとして動作します。 vimctrlbracketnormalが0の場合、ctrl- [escsを送信します。 vimctrlbracketnormalが1の場合、long press ctrl- [escsを送信します。 | 0 |
| vimctrlbracketnormal | 1の場合、ctrl- [正常モードを設定し、長いプレスctrl- [ctrl-]を押します。 | 1 |
| vimsendctrlbracketnormal | 1の場合、short press ctrl- [ctrl-を送信します[通常モードで。 | 0 |
| vimlongctrlbracketnormal | 1、ctrl-の短いプレスとロングプレス[動作が交換されます。 | 0 |
| vimchangecaretwidth | 1の場合、アクションの前にカーソルの下の文字を確認してください。現在、これは以下に使用されます: a通常モードで(カーソルがラインの端にあるかどうかを確認してください)。 | 0 |
| vimrestoreime | 1の場合、IMEステータスは挿入モードに入ると復元されます。 | 1 |
| vimjj | 1の場合、 jj挿入モードからモードを通常モードに変更します。 | 0 |
| vimtwoletteresc | 挿入モード中に一緒に押して、通常モードに到達する文字ペアのリスト。 たとえば、 jfの値は、 jとf同時に押すことを意味します。複数の組み合わせは、隔てて設定できます , (例えばjf,jk,sd ) | |
| vimdisableunused | 挿入モード以外の未使用キーのレベルを無効にします。
| 3 |
| vimsettitlematchmode | SettitleMatchMode:
| 2 |
| vimsettitlematchmodefs | SettitleMatchMode:
| 速い |
| vimiconcheckinterval | VIM_AHKステータス(MS)を確認し、トレイアイコンを変更する間隔(下の写真を参照)。 0に設定されている場合、元のAHKアイコンが設定され、変更されません。 | 1000 |
| ビムバーボース | 冗長レベル:
| 1 |
| vimapplist | アプリケーションリストの使用法:
| リストを許可します |
| vimgroup | 魔女VIM_AHKのアプリケーションが有効になっています。 | アプリケーションセクションを参照してください |
次のようなセクションにスクリプトにvim.ahkを含める前にオプションを追加できます。
VimVerbose := 2
#Include pathtovim.ahk
VIM.AHKスクリプトで直接変更する場合は、 Vim := new VimAhk()の前にこれらの変数を追加します。
注記
これらのVIM変数は、デフォルト値と初期値を上書きします。これらの変数をチェックした後、構成ファイルが読み取られます。既にVIM_AHKを実行している場合、構成ファイルが作成され、すべての設定が保存されました。新しい設定を反映するには、GUIオプション設定ウィンドウでResetてください。
注記
vimiconcheckintervalの例
vimiconcheckintervalを非ゼロとして設定すると、モードを変更するか、vim_ahk有効化していないものにアプリケーションを変更すると、トレイアイコンが変更されます。
警告
vimchangecaretwidth
ケアの幅は、特定のアプリケーション(WordPad、Word、またはOneNote)でのみ変更できます。メモ帳またはエクスプローラーでは、ケアの幅が維持されますが、変化しません。
他のほとんどのアプリケーションでは、カレットの幅は元の幅として保持されます。
このオプションが有効になると、モードが変更されたときに現在のウィンドウが一時的にフォーカスを失います。
このオプションを有効にし、通常モードで厚さのカレット幅を変更し、オプションを無効にすると、カーソル幅が厚くなります。カレットの幅を逆転させるには、オプションを再度有効にし、WordPadまたは何かに挿入モードを入力して、CARET幅を元に戻し、オプションを無効にします。
これらのオプションは、タスクトレイアイコンの右クリックメニュー(リスト内のVimMenu Settingsを検索)から変更するか、 Ctrl-Alt-Shift-vによって設定ウィンドウを起動できます。
ここでは、アプリケーションを追加したり、モード変更キーを変更したり、冗長レベルを変更したりできます。
Resetをプッシュすると、デフォルト設定がウィンドウに表示されます。これらの設定は、 OKボタンを押した場合にのみ有効になります。
これらのデフォルト設定は、上記のスクリプトのVimXXXオプションによって上書きされます。 (IE Reset 、VIM_AHKのデフォルト設定に加えて、スクリプト内のオプションを復元します。)
| 鍵 | 関数 |
|---|---|
| ctrl-alt-shift-v | GUIオプション設定ウィンドウを起動します。 |
| ctrl-alt-shift-s | vim_ahkを一時停止/再起動します。 |
| ctrl-alt-shift-c | ステータスチェックウィンドウを表示します。 (Vimgroupアプリケーションでのみ。) |
主なモードは次のとおりです。
| モード | 説明 |
|---|---|
| モードを挿入します | 元のWindows状態 |
| 通常モード | VIMのように、カーソルはhjkl 、 wなどによって移動されます...そして、いくつかのVIMのようなコマンドが利用可能です。 |
| 視覚モード | 3つの視覚モードがあります。文字のように、線面的に、そしてブロックごとに。ブロックごとの視覚モードは、ブロックごとの選択(Terapadなど)をサポートするアプリケーションに対してのみ有効です。 |
| コマンドモード | ファイルの保存/終了に使用できます。 |
初期状態は挿入モード、次にESCまたはCtrl-[通常モードにもなります。
通常モードでは、INSERTモードに戻るための鍵i 。
v 、 V 、およびCtrl-v 、それぞれ文字では、線面的に、およびブロックごとの視覚モードの鍵です。
押した後:保存/終了するためのいくつかのコマンドが利用可能です。
| キー/コマンド | 関数 |
|---|---|
| esc/ctrl- [ | 通常モードを入力します。保持(0.5S)これらのキーは、通常のESC/Ctrl- [。 |
| JJ | 有効にする場合は、通常モードを入力します。 |
| カスタム2文字 | 2文字のマッピングが設定されている場合。 |
ESC/Ctrl- [IMEがオンになっている場合はIMEをオフにします。 ESCは、IMEがオンになっているときにESCとして機能し、命令を変換します。 ctrl- [IMEをオフにして、IMEがオンになっていても通常モードに入ります。
VimLongEscNormal ( VimLongCtrlBracketNormalが有効になっていない場合、Long Press ESC(ctrl- [)がこれらの元のキーを送信します(0)。
VimLongEscNormal ( VimLongCtrlBracketNormal )が有効になっている場合、単一のプレスが元のキーを送信し、長いプレスがモードを通常モードに変更します。
カスタム2文字のホットキーを使用して通常モードに入る場合、2文字は異なる必要があります。
警告
キャラクターは、1つの2文字のホットキーにのみ使用できます。 abとbcを指定した場合、 ba (最初にbを押してからa )は機能しません。ただし、 aプッシュすると、 ab機能します。
| キー/コマンド | 関数 |
|---|---|
| I/I/A/A/O/O | カーソル/ラインの開始/カーソル/ラインの端/次の行/前の行の隣に挿入モードを入力します。 |
| v/v/ctrl-v | 文字で/線のように/ブロックごとの視覚モードを入力します。 |
| : | コマンドラインモードを入力します |
| キー/コマンド | 関数 |
|---|---|
| h/j/k/l | 左/ダウン/アップ/右。 |
| 0/$ | 行の開始/終了に移動します。 |
| ctrl-a/ctrl-e | 行の開始/終了(emacs like)に移動します。 |
| ^ | ラインの最初の非白色文字に移動します。 |
| w/w | 次の単語の先頭に移動します。 |
| E/e | 単語の終わりに移動します。 (実際、次の単語の先頭に移動し、1人のキャラクターを左に移動します。) |
| b/b | 前の単語の先頭に移動します。 |
| ctrl-u/ctrl-d | 10行を上下します。 |
| ctrl-b/ctrl-f | PageUp/Pagedown。 |
| gg/g | ファイルの上部/下部に移動します |
| 空間 | 右。 |
| 入力 | 次の行の先頭に移動します。 |
注記
エディターアプリケーションのみを入力します(Explorer、Q-Dir以外では、通常モードでもEnterとして機能します)。
さらに、一部のコマンドでもRepeat使用できます。
| 例コマンド | アクション |
|---|---|
| 4J | 4行下 |
| 3W | 3語を前方に移動します |
| 100J | 100行ダウン |
| キー/コマンド | 関数 |
|---|---|
| YY、Y | 行をコピーします。 |
| DD | ラインを切ります。 |
| d | ここからラインの終わりまでカットします。 |
| CC | 行を変更します(挿入モードを入力します)。 |
| c | ここから行の最後までカットし、挿入モードに入ります。 |
| x/x | カーソルの下/前に文字を削除します(クリップボードに登録されていません)。 |
| p/p | 次の場所/現在の場所に貼り付けます。ラインごとの視覚モードでコピー/カットが完了した場合、次の/電流線に貼り付けます。いくつかのコマンド(そのようなYY/DD)も、ラインのように貼り付けることを強制します。 |
| yiw/diw/ciw | 現在の単語をコピー/カット/変更します。 |
y/d/c+移動コマンドも使用できます。
yw >次の1つの単語をコピーします。d3w >次の3つの単語を削除します。| キー/コマンド | 関数 |
|---|---|
| u/ctrl-r | 元に戻す/やり直します。 |
| r/r | 1つの文字/複数の文字を交換します。 |
| j | 2行を組み合わせます。 |
| 。 | それは修正されています: Replace the following word with a clipboard (検索で使用するのに役立ちます)。 |
| 〜 | ケースを変更します。 |
| / | 検索を開始します(検索ボックスが開きます) |
| n/n | 次の/前の検索(一部のアプリケーションは次の検索のみをサポートしています) |
| * | カーソルの下で単語を検索します。 |
| ZZ/ZQ | 保存して終了/終了します。 |
| キー/コマンド | 関数 |
|---|---|
| esc/ctrl- [ | 通常モードを入力します。 |
| コマンドを移動します | 通常モードのほとんどの移動コマンドが利用可能です。 |
| y/d/x/c | コピー/カット/カット/カットと挿入( d = x ) |
| y/d/x/c | 行の最後に移動してから、コピー/カット/カット/カットと挿入モード( D = X ) |
| IW | 現在の単語を選択します。 |
| * | 選択した単語を検索します。 |
| キー/コマンド | 関数 |
|---|---|
| esc/ctrl- [ | 通常モードを入力します。 |
| w + return | 保存 |
| W +スペース | ASを保存します |
| W + Q | 保存して終了します |
| Q | やめる |
| h | アプリケーションのオープンヘルプ |
VIキーバインディングを備えたコンソールファイルマネージャーであるRangerを参照してください。
| キー/コマンド | 関数 |
|---|---|
| h/j/k/l | Backspace(Parent Directoryに戻る)/Down/Up/Enter(選択したディレクトリに入るか、ファイルを開きます) |
| alt+u/i/j/k | Quad-Directoriesを切り替えます |
| ' | メニュークイックリンク |
テストは、 tests/run_vimahk_tests.ahk実行によって実行されます。メモ帳とVIMウィンドウが開き、VIM_AHKが開始されます。
使用されるテストシステムは、VIM_AHKに送信するキーストロークを表すtests/testcases.txtの一連のテストケースです。これらは開いたVIMとメモ帳のウィンドウに送信され、結果のテキストが比較されます。
テストは非常に薄くなる可能性があるため、ガイドとして使用し、コードパスを実行してエラーを確認する必要があります。デフォルトのINIでテストを実行する必要があります。