Festlegen von Datei-/EXE -Datei von AutoHotkey für VIM -Emulation.
vim.ahk ist die Einstellungsdatei für AutoHotkey (AutoHotkey_L).
Vim.exe ist eine eigenständige Anwendung aus Vim.ahk (verfügbar auf der Seite der Veröffentlichungen).
Dies ist die Vim -Emulation für Fenster. Wenn Sie an den gleichen Einstellungen für Mac interessiert sind, versuchen Sie es mit VIM -Emulation für Karabiner - Software für MacOS: Karabiner -Elements Complex_Modifications -Regeln von RCMDNK.
Dieses Skript ist für Autohotkey V2.
Wenn Sie AutoHotkey V1 verwenden, verwenden Sie die Version V0.13.2 (oder AHK_V1 -Zweig).
Wenn Sie AutoHotkey bereits installiert haben, öffnen Sie einfach Vim.ahk mit Autohotkey.
Wenn Sie AutoHotkey mit einem anderen Skript ausführen, können Users%username%Documents es mit AutoHotkey in Ihr Skript einfügen.
#Include %A_LineFile%..vim.ahk
Am Ende des automatischen Ausgangsabschnitts.
Sie können auch vim_ahk.exe verwenden, das mit Autohotkey eigenständig arbeiten kann.
Um ausführbar zu werden, gehen Sie zur Seite "Releases" und laden Sie die neueste ZIP -Datei herunter.
Entpacken Sie die Zip -Datei und platzieren Sie den extrahierten vim_ahk -Ordner, in dem Sie möchten, und starten Sie dann vim_ahk.exe .
Notiz
Platzieren Sie VIM_AHK_ICONS -Ordner im selben Ordner mit vim_ahk.exe . Andernfalls funktioniert die Funktion des Tably -Menüsymbols nicht.
Klone Vim_ahk und go vim_ahk Ordner und rennen Sie Build.bat .
.build.bat on PowerShell oder Eingabeaufforderung.Sie finden den Ordner vim_ahk , der vim_ahk.exe und vim_ahk_icons enthält.
Die Standardeinstellung ermöglicht VIM-Mode für die folgenden Anwendungen:
Sie können sie aus dem rechten Klickmenü des Aufgabenfachsymbols (Suchen Sie VimMenu - Settings in der Liste) oder starten Sie das Einstellungsfenster mit Ctrl-Alt-Shift-v .
Wenn Sie Anwendungen direkt im Skript ändern möchten, fügen Sie VimGroup -Variable vor Vim := new VimAhk() in vim.ahk (Fenstertitel/Klasse kann durch Fensterspion von AutoHotkey überprüft werden) oder schreiben Sie vor Einbeziehung von vim.ahk
Beispielzeile:
VimGroup := "ahk_exe chrome.exe,ahk_exe firefox.exe"
Mehrere Anwendungen können von einem Komma geschrieben werden.
Notiz
Dadurch wird die Standardanwendungen überschreiben. Wenn Sie diese Anwendungen zu den Standardanwendungen hinzufügen möchten, fügen Sie die folgenden Anwendungen nach Ihren Anwendungen hinzu:
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
Oder Sie können das unten beschriebene Menü zur GUI -Option einstellen.
Die Standardeinstellung von VimSetTitleMatchMode beträgt 2, wodurch Matching -Methoden Contain .
Wenn Sie OneNote einstellen, werden alle Fenster mit einem Titel mit OneNote (z. XXX's OneNote ) enthalten sein. Wenn Sie VimSetTitleMatchMode als 3 festlegen, wird nur der genaue Titel von OneNote enthalten.
Es funktioniert möglicherweise nicht auf OneNote. OneNote hat möglicherweise einen Fensternamen wie das Notizbuch des Benutzers - OneNote anstelle von OneNote .
In diesem Fall müssen Sie den Fenstertitel von OneNote mit einem Fensterspion überprüfen.
Window Spy gibt Ihnen einen Fenstertitel, die Klasse und den Prozess wie:
User's Notebook - OneNote
ahk_class ApplicationFrameWindow
ahk_exe ApplicationFrameHost.exe
Wenn Sie VimGroup eine der oben genannten Zeilen hinzufügen, arbeitet VIM_AHK auf OneNote. Wenn Sie jedoch ahk_class ApplicationFrameWindow oder ahk_exe ApplicationFrameHost.exe festlegen, arbeitet vim_ahk auch an anderen Anwendungen, die diese Klasse/Prozessnamen verwenden (die meisten Anwendungen, die aus Microsoft Store installiert sind).
Beispiele für Anwendungen:
ahk_exe chrome.exeahk_exe firefox.exeahk_exe EXCEL.EXEahk_exe soffice.bin (für alle Libreoffice -Anwendungen) Zusätzlich zu VimGroup gibt es die folgenden Optionen, die Sie in Ihrem Skript festlegen können. All dies kann auch aus dem Einstellungsmenü geändert werden.
| Option | Beschreibung | Standard |
|---|---|---|
| Vimescnormal | Wenn 1, setzt Short Press ESC den normalen Modus, während Long Press ESC ESC sendet. | 1 |
| Vimsendescnormal | Wenn 1, senden Sie ESC im Kurzdruck im normalen Modus. | 0 |
| Vimlongescnormal | Wenn 1, werden kurze Presse und lange Presse von ESC -Verhaltensweisen getauscht. | 0 |
| Vimctrlbrackettoesc | Wenn 1, verhält sich als Esc. Wenn vimctrlbracketnormale 0 ist, sendet Strg- [ESC. Wenn vimctrlbracketnormale 1 ist, sendet Long Press Strl- [ESC. | 0 |
| Vimctrlbracketnormal | Wenn 1, drücken Sie Strg- [Legt den normalen Modus fest, während Long Press Strg- [Strl- [sendet. | 1 |
| VimsendCtrlBracketNormal | Wenn 1, drücken Sie Strl- [Senden Sie Strg- [im normalen Modus. | 0 |
| Vimlongctrlbracketnormal | Wenn 1, werden kurze Presse und lange Presse von Strg- [Verhaltensweisen getauscht. | 0 |
| VimchangeCaretwidth | Wenn 1, überprüfen Sie den Zeichen unter dem Cursor vor einer Aktion. Derzeit wird dies für: a im normalen Modus verwendet (prüfen Sie, ob sich der Cursor am Ende der Linie befindet). | 0 |
| Vimrestoreime | Wenn 1, wird der IME -Status beim Eingeben des Einfügungsmodus wiederhergestellt. | 1 |
| Vimjj | Wenn 1, ändert jj den Modus aus dem Einfügenmodus in den normalen Modus. | 0 |
| Vimtwoletteresc | Eine Liste von Zeichenpaaren, die während des Einfügungsmodus zusammen drücken, um in den normalen Modus zu gelangen. Ein Wert von jf bedeutet beispielsweise, dass das gleichzeitige Drücken von j und f in den normalen Modus eingeht.Mehrfachkombination kann durch getrennt durch , (zB jf,jk,sd ) | |
| VimdisableUnused | Deaktivieren Sie die Ebene der nicht verwendeten Schlüssel in anderen Fällen als im Einfügungsmodus:
| 3 |
| VimsettitlematchMode | SettitlematchMode:
| 2 |
| VimsettitlematchModefs | SettitlematchMode:
| Schnell |
| VimiconCheckinterval | Intervall zum Überprüfen von VIM_AHK -Status (MS) und Ändern des Tablettsymbols (siehe Bild unten). Wenn es auf 0 eingestellt ist, wird das ursprüngliche AHK -Symbol gesetzt und nicht geändert. | 1000 |
| Vimverbose | Ausführlicher Level:
| 1 |
| Vimapplist | Verwendung von Bewerbungslisten:
| Liste zulassen |
| Vimgroup | Bewerbungen auf Hexen vim_ahk sind aktiviert. | Siehe Abschnitt Anwendungen |
Sie können Ihre Optionen hinzufügen, bevor Sie vim.ahk in Ihr Skript in den Abschnitt automatisch ausführen wie folgt:
VimVerbose := 2
#Include pathtovim.ahk
Wenn Sie sie direkt im Skript vim.ahk ändern möchten, fügen Sie diese Variable vor Vim := new VimAhk() .
Notiz
Diese VIM -Variablen überschreiben die Standardwerte und Anfangswerte. Nach der Überprüfung dieser Variablen wird die Konfigurationsdatei gelesen. Wenn Sie bereits vim_ahk ausgeführt haben, wurde die Konfigurationsdatei erstellt und alle Einstellungen wurden gespeichert. Um die neuen Einstellungen widerzuspiegeln, setzen Sie im Fenster GUI -Optionseinstellungen Reset .
Notiz
VimiconCheckinterval -Beispiel
Wenn Sie VimiconCheckInterval als ungleich Null einstellen, wird das Tablettsymbol geändert, wenn Sie den Modus ändern oder die Anwendungen in aktiviertes oder nicht aktivierter VIM_AHK ändern.
Warnung
VimchangeCaretwidth
Die Pflegebreite kann nur bei bestimmten Anwendungen geändert werden: Wordpad, Wort oder OneNote. Bei Notepad oder Explorer wird die Pflegebreite aufbewahrt, ändert sich jedoch nicht.
Für die meisten anderen Anwendungen wird die Pflegebreite als ursprüngliche Breite gehalten.
Wenn diese Option aktiviert ist, verliert das aktuelle Fenster kurz den Fokus, wenn der Modus geändert wird.
Wenn Sie diese Option aktiviert haben und die Pfarrbreite im normalen Modus dick ändern und die Option deaktivieren, wird die Cursorbreite als dick gehalten. Um die Pflegebreite umzukehren, die Option erneut zu erleben und den Einfügenmodus im WordPad oder etwas zugänglich zu machen, um die Pflegebreite zurückzukehren, und dann die Option deaktivieren.
Sie können diese Optionen über das Rechtsklickmenü des Task-Tray-Symbols ( VimMenu - Settings in der Liste finden) ändern oder das Einstellungsfenster mit Ctrl-Alt-Shift-v starten.
Hier können Sie Anwendungen hinzufügen, den Modusänderungsschlüssel ändern oder die ausführliche Ebene ändern.
Wenn Sie Reset vornehmen, werden im Fenster die Standardeinstellungen angezeigt. Diese Einstellungen werden nur aktiviert, wenn Sie die OK -Taste drücken.
Diese Standardeinstellungen werden durch Ihre VimXXX -Optionen in Ihrem oben beschriebenen Skript überschrieben. (IE Reset stellt Ihre Optionen zusätzlich zu den Standardeinstellungen von VIM_AHK im Skript wieder her.)
| Schlüssel | Funktion |
|---|---|
| Strg-Alt-Shift-V | Starten Sie die GUI -Option Einstellungsfenster. |
| Strg-Alt-Shift-S | Vim_ahk suspend/neu starten. |
| Strg-Alt-Shift-C | Statusüberprüfungsfenster anzeigen. (Nur auf den VimGroup -Anwendungen.) |
Hier sind die Hauptmodi.
| Modus | Beschreibung |
|---|---|
| Modus einfügen | Original Windows State |
| Normaler Modus | Wie in Vim wird ein Cursor von hjkl , w usw. bewegt, und einige vimähnliche Befehle sind verfügbar. |
| Visueller Modus | Es gibt drei visuelle Modi: Charakter, Linie und blockig. Der blockbezogene visuelle Modus gilt nur für Anwendungen, die die blockbezogene Auswahl unterstützen (solches Terapad). |
| Befehlsmodus | Kann zum Speichern der Datei/Beenden verwendet werden. |
Der Ausgangszustand ist der Einfügenmodus, dann ESC oder Ctrl-[ bringt Sie zum normalen Modus.
Im normalen Modus ist i der Schlüssel, um wieder in den Einsatzmodus zu sein.
v , V und Ctrl-v sind der Schlüssel zum Charakter, der Linie und des blockigen visuellen Modus.
Nach dem : sind einige Befehle zum Speichern/Beenden verfügbar.
| Schlüssel/Befehle | Funktion |
|---|---|
| ESC/Strg- [ | Geben Sie den normalen Modus ein. Halten (0,5s) Diese Schlüssel emulieren normale Esc/Strg- [. |
| JJ | Geben Sie den normalen Modus ein, falls aktiviert. |
| Benutzerdefinierte zwei Buchstaben | Wenn zwei Buchstaben Mapping festgelegt sind. |
ESC/ctrl- [Schalten Sie IME aus, wenn IME eingeschaltet ist. ESC fungiert als ESC, wenn IME eingeschaltet ist und Anweisungen umwandeln. STRL- [schaltet IME aus und tritt in den normalen Modus ein, auch wenn IME eingeschaltet ist.
Long Press ESC (ctrl- [) sendet diese Originalschlüssel, wenn VimLongEscNormal ( VimLongCtrlBracketNormal nicht aktiviert ist (0).
Wenn VimLongEscNormal ( VimLongCtrlBracketNormal ) aktiviert ist, sendet eine einzelne Presse die ursprünglichen Tasten und eine lange Presse ändert den Modus in den normalen Modus.
Wenn Sie einen benutzerdefinierten Zwei-Buchstaben-Hotkey verwenden, um in den normalen Modus einzugeben, müssen die beiden Buchstaben unterschiedlich sein.
Warnung
Ein Charakter kann nur für einen Hotkey mit zwei Buchstaben verwendet werden. Wenn Sie ab und bc angeben, funktioniert ba (Push b zuerst und dann a ) nicht. Wenn Sie a vorantreiben, funktioniert ab jedoch.
| Schlüssel/Befehle | Funktion |
|---|---|
| i/i/a/a/o/o | Geben Sie den Einfügenmodus unter dem Cursor/Start der Linie/neben dem Cursor/Ende der Linie/der nächsten Zeile/der vorherigen Zeile ein. |
| v/v/ctrl-v | Geben Sie den visuellen Modus des Charakters/Zeilen-/Blocks ein. |
| : | Geben Sie den Befehlszeilenmodus ein |
| Schlüssel/Befehle | Funktion |
|---|---|
| h/j/k/l | Links/nach unten/nach rechts. |
| 0/$ | Gehen Sie zum Start/Ende der Linie. |
| Ctrl-a/ctrl-e | Gehen Sie zum Start/Ende der Linie (EMACs wie). |
| ^ | Gehen Sie zum Startnothitzcharakter der Linie. |
| w/w | Gehen Sie zum Beginn des nächsten Wortes. |
| e/e | Bewegen Sie sich bis zum Ende des Wortes. (Wechseln Sie tatsächlich zum Beginn des nächsten Wortes und bewegen Sie einen linken Charakter.) |
| b/b | Gehen Sie zum Beginn des vorherigen Wortes. |
| Ctrl-u/ctrl-d | Gehen Sie 10 Zeile nach oben/runter. |
| Strg-B/ctrl-f | Pageup/PAGEDOWN. |
| gg/g | Gehen Sie nach oben/unten in der Datei |
| Raum | Rechts. |
| Eingeben | Gehen Sie zum Beginn der nächsten Zeile. |
Notiz
Geben Sie nur für Editor-Anwendungen ein (für Explorer, Q-Dir, es funktioniert auch im normalen Modus als Eingabetaste).
Außerdem ist Repeat für einige Befehle verfügbar.
| Beispielbefehle | Aktion |
|---|---|
| 4J | 4 Zeilen nach unten |
| 3W | 3 Wörter vorwärts bewegen |
| 100J | 100 Zeilen runter |
| Schlüssel/Befehle | Funktion |
|---|---|
| yy, y | Kopieren Sie die Zeile. |
| dd | Schneiden Sie die Linie. |
| D | Von hier bis zum Ende der Linie schneiden. |
| CC | Ändern Sie die Zeile (geben Sie den Einfügenmodus ein). |
| C | Schneiden Sie von hier bis zum Ende der Linie und geben Sie den Einfügenmodus ein. |
| x/x | Löschen Sie ein Zeichen unter/vor dem Cursor (nicht in der Zwischenablage registriert). |
| p/p | Einfügen an den nächsten/aktuellen Ort. Wenn Kopie/Schnitt mit dem Zeilen-Visual-Modus durchgeführt wurde, übernimmt es an die nächste/aktuelle Zeile. Einige Befehle (solche YY/DD) zwingen ebenfalls zum Einfügen als Linie. |
| yiw/diw/ciw | Das aktuelle Wort kopieren/schneiden/ändern. |
Der Befehl y/d/c+verschieben kann auch verwendet werden.
yw -> Nächstes ein Wort kopieren.d3w -> Nächste 3 Wörter löschen.| Schlüssel/Befehle | Funktion |
|---|---|
| u/ctrl-r | Rückgängig gemacht/wiederholen. |
| r/r | Ersetzen Sie ein Zeichen/mehrere Zeichen. |
| J | Zwei Linien kombinieren. |
| . | Es ist so festgelegt: Replace the following word with a clipboard (nützlich für eine Suche). |
| ~ | Fall ändern. |
| / | Suchstart (Suchfeld wird geöffnet) |
| n/n | Suchen Sie als nächstes/vorher (einige Anwendungen unterstützen nur die nächste Suche) |
| * | Suchen Sie das Wort unter dem Cursor. |
| ZZ/ZQ | Speichern und beenden/beenden. |
| Schlüssel/Befehle | Funktion |
|---|---|
| ESC/Strg- [ | Geben Sie den normalen Modus ein. |
| Befehl verschieben | Die meisten Bewegungsbefehle im normalen Modus sind verfügbar. |
| y/d/x/c | Kopieren/schneiden/schneiden und einfügen ( d = x ) |
| Y/d/x/c | Bewegen Sie sich zum Ende der Linie, kopieren Sie/schneiden/schneiden/schneiden und im Einfügenmodus ( D = X ) |
| iw | Wählen Sie das aktuelle Wort. |
| * | Suchen Sie das ausgewählte Wort. |
| Schlüssel/Befehle | Funktion |
|---|---|
| ESC/Strg- [ | Geben Sie den normalen Modus ein. |
| W + Return | Speichern |
| W + Raum | Sparen as |
| w + q | Speichern und aufhören |
| Q | Aufhören |
| H | Offene Hilfe der Anwendung |
Siehe Ranger, ein Konsolen -Dateimanager mit VI -Schlüsselbindungen.
| Schlüssel/Befehle | Funktion |
|---|---|
| h/j/k/l | Backpace (Rückkehr zum übergeordneten Verzeichnis)/down/up/ENTERT (Geben Sie das ausgewählte Verzeichnis ein oder öffnet eine Datei) |
| ALT+U/I/J/K. | Wechseln Sie zwischen Quad-Verzeichnissen |
| '' | Menü Schnelllinks |
Die Tests werden durchgeführt, indem tests/run_vimahk_tests.ahk . Ein Notepad und ein VIM -Fenster sind geöffnet und Vim_ahk wird gestartet.
Das verwendete Testsystem ist eine Reihe von Testfällen in tests/testcases.txt . Diese werden an die offenen VIM- und Notepad -Fenster gesendet, und der resultierende Text wird verglichen.
Die Tests können sehr schleppend sein. Daher sollten sie als Leitfaden verwendet werden und Codepfade ausführen, um auf Fehler zu prüfen. Tests sollten mit einem Standard -INI durchgeführt werden.