Définition du fichier / fichier EXE de AutoHotKey pour l'émulation VIM.
vim.ahk est le fichier de réglage pour AutoHotKey (AutoHotKey_L).
Vim.exe est une application autonome en Vim.ahk (disponible dans la page des versions).
C'est une émulation vim pour Windows. Si vous êtes intéressé par les mêmes paramètres pour Mac, essayez l'émulation VIM pour Karabiner - Software for MacOS: Karabiner-Elements complex_modifications Règles par rcmdnk.
Ce script est pour AutoHotKey v2.
Si vous utilisez AutoHotKey V1, veuillez utiliser la version V0.13.2 (ou la branche AHK_V1).
Si vous avez déjà installé AutoHotKey, ouvrez simplement VIM.AHK avec AutoHotKey.
Si vous exécutez AutoHotKey avec un autre script, vous pouvez l'inclure dans votre script en utilisant AutoHotKey ... veuillez copier Vim.ahk et Lib Directory dans Users%username%Documents ou où se trouve le script et ajouter la ligne suivante dans AutoHotKey.Ahk ou votre script:
#Include %A_LineFile%..vim.ahk
à la fin de la section automatique d'exécution.
Vous pouvez également utiliser vim_ahk.exe , qui peut fonctionner autonome sans autohotkey.
Pour obtenir l'exécutable, accédez à la page des versions et téléchargez le dernier fichier zip.
Décompressez le fichier zip et placez le dossier VIM_AHK extrait où vous aimez, puis lancez vim_ahk.exe .
Note
Placez le dossier VIM_AHK_ICONS dans le même dossier avec vim_ahk.exe , sinon, la fonction d'icône du menu du plateau ne fonctionne pas.
Clone vim_ahk et go vim_ahk dossier, et exécutez build.bat .
.build.bat sur PowerShell ou Invite de commande.Vous trouverez un dossier vim_ahk qui contient vim_ahk.exe et vim_ahk_icons .
Le paramètre par défaut permet le mode VIM pour les applications suivantes:
Vous pouvez les modifier à partir du menu à clic droit de l'icône du bac Task (recherchez Settings VimMenu dans la liste), ou lancer la fenêtre de paramètre par Ctrl-Alt-Shift-v .
Si vous souhaitez modifier directement les applications dans le script, ajoutez la variable VimGroup avant Vim := new VimAhk() dans vim.ahk (le titre / classe de la fenêtre peut être vérifié par Window Spy of AutoHotKey), ou écrivez avant d'inclure vim.ahk
Exemple de ligne:
VimGroup := "ahk_exe chrome.exe,ahk_exe firefox.exe"
Plusieurs applications peuvent être rédigées par une combinaison séparée.
Note
Cela écrasera les applications par défaut. Si vous souhaitez ajouter ces applications aux applications par défaut, ajoutez les applications suivantes après vos applications:
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
Ou vous pouvez utiliser le menu de réglage de l'option GUI décrit ci-dessous.
Le paramètre par défaut de VimSetTitleMatchMode est 2, ce qui rend les méthodes de correspondance telles que Contain .
Si vous définissez OneNote , toutes les fenêtres avec un titre contenant OneNote (par exemple XXX's OneNote ) seront incluses. Si vous définissez VimSetTitleMatchMode en 3 ans, seul le titre exact OneNote sera inclus.
Cela peut ne pas fonctionner sur OneNote. OneNote peut avoir un nom de fenêtre comme le cahier de l'utilisateur - OneNote , au lieu de OneNote .
Dans ce cas, vous devez vérifier le titre de fenêtre d'Onenote avec l'espion de la fenêtre.
Window Spy vous donnera sur le titre de fenêtre, la classe et le processus comme:
User's Notebook - OneNote
ahk_class ApplicationFrameWindow
ahk_exe ApplicationFrameHost.exe
Si vous ajoutez l'une des lignes ci-dessus à VimGroup, VIM_AHK fonctionne sur OneNote. Mais si vous définissez ahk_class ApplicationFrameWindow ou ahk_exe ApplicationFrameHost.exe , VIM_AHK fonctionne également sur d'autres applications qui utilisent ces noms de classe / processus (la plupart des applications installées à partir de Microsoft Store).
Exemples d'applications:
ahk_exe chrome.exeahk_exe firefox.exeahk_exe EXCEL.EXEahk_exe soffice.bin (pour toutes les applications LibreOffice) En plus de VimGroup , il existe les options suivantes que vous pouvez définir dans votre script. Tous ces éléments peuvent également être modifiés à partir du menu de réglage.
| Option | Description | Défaut |
|---|---|---|
| Vimescnormal | Si 1, ESC à pression courte définit le mode normal, tandis que Long Press ESC envoie ESC. | 1 |
| Vimsenscnormal | Si 1, ESC à pression à court terme envoie ESC en mode normal. | 0 |
| Vimlonongsnormal | Si 1, une presse courte et une longue pression des comportements ESC sont échangées. | 0 |
| Vimctrlbrackettoesc | Si 1, Ctrl- [se comporte comme ESC. Si vimctrlbracketNormal est 0, Ctrl- [Envoie ESC. Si vimctrlbracketNormal est 1, la pression longue ctrl- [envoie ESC. | 0 |
| Vimctrlbracketnormal | Si 1, poussant Ctrl- [Définit le mode normal, tout en appuyant sur Long Ctrl- [Envoie Ctrl- [. | 1 |
| Vimssendctrlbracketnormal | Si 1, appuyez sur court Ctrl- [Envoyer Ctrl- [en mode normal. | 0 |
| Vimlongctrlbracketnormal | Si 1, une presse courte et une longue presse de ctrl- [les comportements sont échangés. | 0 |
| Vimchangecaretwidth | Si 1, vérifiez le caractère sous le curseur avant une action. Actuellement, cela est utilisé pour: a en mode normal (vérifiez si le curseur est situé à la fin de la ligne). | 0 |
| Vimrestoreime | Si 1, l'état IME est restauré pour entrer en mode d'insertion. | 1 |
| Vimjj | Si 1, jj change le mode en mode normal à partir du mode d'insertion. | 0 |
| Vimtwoletteresc | Une liste de paires de caractères à appuyer ensemble pendant le mode d'insert pour accéder au mode normal. Par exemple, une valeur de jf signifie appuyer sur j et f en même temps entrera en mode normal.La combinaison multiple peut être définie par séparé par , . (Par exemple jf,jk,sd ) | |
| Vimdisable | Désactiver le niveau de clés inutilisées dans autre que le mode d'insertion:
| 3 |
| VimsettitleMatchMode | SetttLeMatchMode:
| 2 |
| VimsettitleMatchModefs | SetttLeMatchMode:
| Rapide |
| VimiconcheckInterval | Intervalle pour vérifier l'état VIM_AHK (MS) et changer l'icône du plateau (voir l'image ci-dessous). S'il est défini sur 0, l'icône AHK d'origine est définie et non modifiée. | 1000 |
| Vimverbose | Niveau verbeux:
| 1 |
| Vimapplist | Utilisation de la liste des applications:
| Autoriser la liste |
| Vimgroupe | Les applications sur Witch VIM_AHK sont activées. | Voir la section des applications |
Vous pouvez ajouter vos options avant d'inclure VIM.AHK dans votre script dans la section Execute Auto comme:
VimVerbose := 2
#Include pathtovim.ahk
Si vous souhaitez les modifier directement dans le script vim.ahk, ajoutez ces variables avant Vim := new VimAhk() .
Note
Ces variables VIM écraseront les valeurs par défaut et les valeurs initiales. Après avoir vérifié ces variables, le fichier de configuration est lu. Si vous avez déjà exécuté VIM_AHK, le fichier de configuration a été créé et tous les paramètres ont été enregistrés. Pour refléter les nouveaux paramètres, essayez Reset dans la fenêtre de paramètre de l'option GUI.
Note
VIMICONCHECKINTERVAL
Si vous définissez viMIConCheckInterval en tant que non-zéro, l'icône du plateau est modifiée lorsque vous modifiez le mode ou modifiez les applications en Vim_ahk activées ou non activées.
Avertissement
Vimchangecaretwidth
La largeur des carillons ne peut être modifiée que sur des applications spécifiques: WordPad, Word ou OneNote. Sur le bloc-notes ou l'explorateur, la largeur des garets est conservée mais ne change pas.
Pour la plupart des autres applications, la largeur des carillons est conservée comme largeur d'origine.
Lorsque cette option est activée, la fenêtre actuelle perd brièvement la mise au point lorsque le mode est modifié.
Si vous avez activé cette option et modifie la largeur des carillons en mode normal et désactivez l'option, la largeur du curseur est maintenue comme épaisse. Pour inverser la largeur des carillons, réactivez l'option et entrez le mode d'insertion sur le wordpad ou quelque chose pour retourner la largeur des carillons, puis désactivez l'option.
Vous pouvez modifier ces options à partir du menu à clic droit de l'icône du bac Task (Rechercher Settings VimMenu dans la liste), ou lancer la fenêtre de paramètre par Ctrl-Alt-Shift-v .
Ici, vous pouvez ajouter des applications, modifier la clé de modification du mode ou modifier le niveau verbeux.
Si vous appuyez sur Reset , les paramètres par défaut seront affichés dans la fenêtre. Ces paramètres ne seront activés que si vous appuyez sur le bouton OK .
Ces paramètres par défaut sont remplacés par vos options VimXXX dans votre script décrit ci-dessus. (IE Reset restaurera vos options dans le script en plus des paramètres par défaut de VIM_AHK.)
| Clé | Fonction |
|---|---|
| Ctrl-alt-shift-v | Lancez la fenêtre de réglage de l'option GUI. |
| Ctrl-alt-shift-s | Suspendre / redémarrer vim_ahk. |
| Ctrl-alt-shift-c | Afficher la fenêtre de vérification de l'état. (Uniquement sur les applications vimgroup.) |
Voici les principaux modes.
| Mode | Description |
|---|---|
| Mode insérer | État Windows d'origine |
| Mode normal | Comme dans VIM, un curseur est déplacé par hjkl , w , etc ... et certaines commandes de type VIM sont disponibles. |
| Mode visuel | Il existe trois modes visuels: en termes de caractère, en ligne et en bloc. Le mode visuel par bloc est valide uniquement pour les applications qui prennent en charge la sélection de blocs (tels Terapad). |
| Mode de commande | Peut être utilisé pour enregistrer le fichier / la Quitte. |
L'état initial est le mode d'insertion, puis ESC ou Ctrl-[ vous amène au mode normal.
En mode normal, i est la clé pour être de retour au mode d'insertion.
v , V et Ctrl-v sont la clé du caractère, du mode visuel en ligne de caractère et du bloc, respectivement.
Après avoir appuyé sur : , quelques commandes pour enregistrer / quitter sont disponibles.
| Clé / commandes | Fonction |
|---|---|
| ESC / Ctrl- [ | Entrez le mode normal. Tenant (0,5 s) Ces clés imitent ESC / Ctrl- [. |
| JJ | Entrez le mode normal, si vous êtes activé. |
| Deux lettres personnalisées | Si le mappage à deux lettres est défini. |
ESC / Ctrl- [Éteignez IME si IME est allumé. L'ESC agit comme ESC lorsque l'IME est allumée et convertit les instructions. Ctrl- [Éteint IME et entre dans le mode normal même si IME est allumé.
Long Press ESC (Ctrl- [) enverra ces clés d'origine, si VimLongEscNormal ( VimLongCtrlBracketNormal n'est pas activé (0).
Si VimLongEscNormal ( VimLongCtrlBracketNormal ) est activé, une seule pression enverra des touches d'origine et une longue pression modifiera le mode en mode normal.
Si vous utilisez une cure de terre de deux lettres personnalisée pour entrer le mode normal, les deux lettres doivent être différentes.
Avertissement
Un personnage ne peut être utilisé que pour une cure de terre de deux lettres. Si vous spécifiez ab et bc , ba (push b en premier puis a ) ne fonctionne pas. Si vous poussez a premier, alors ab fonctionnera, cependant.
| Clé / commandes | Fonction |
|---|---|
| I / I / A / A / O / O | Entrez le mode d'insertion sous le curseur / début de la ligne / à côté du curseur / fin de la ligne / ligne suivante / ligne précédente. |
| v / v / ctrl-v | Entrez le mode visuel du personnage / ligne-sage / bloc. |
| : | Entrez le mode de ligne de commande |
| Clé / commandes | Fonction |
|---|---|
| H / J / K / L | Gauche / bas / haut / droite. |
| 0 / $ | Passez au début / fin de la ligne. |
| Ctrl-a / ctrl-e | Déplacez-vous au début / fin de la ligne (Emacs comme). |
| ^ | Déplacez-vous vers le caractère de démarrage sans espace de la ligne. |
| avec | Passez au début du mot suivant. |
| e / e | Déplacez-vous à la fin du mot. (En fait, passez au début du mot suivant et déplacez un caractère à gauche.) |
| b / b | Passez au début du mot précédent. |
| Ctrl-u / ctrl-d | Montez / bas 10 lignes. |
| Ctrl-b / ctrl-f | PageUp / Pagedown. |
| gg / g | Aller en haut / en bas du fichier |
| Espace | Droite. |
| Entrer | Déplacez-vous au début de la ligne suivante. |
Note
Entrée fonctionne uniquement pour les applications d'éditeur (pour autre que Explorer, Q-DIR, il fonctionne comme entre même en mode normal).
De plus, Repeat est également disponible pour certaines commandes.
| Exemples de commandes | Action |
|---|---|
| 4J | En baisse de 4 lignes |
| 3W | Déplacez 3 mots vers l'avant |
| 100J | En bas de 100 lignes |
| Clé / commandes | Fonction |
|---|---|
| yy, y | Copiez la ligne. |
| dd | Coupez la ligne. |
| D | Couper d'ici à la fin de la ligne. |
| CC | Modifiez la ligne (entrez le mode d'insertion). |
| C | Coupez d'ici à la fin de la ligne et entrez le mode d'insert. |
| x / x | Supprimez un caractère sous / avant le curseur (non enregistré dans le presse-papiers). |
| p / p | Collez à l'endroit suivant / actuel. Si la copie / coupe a été effectuée avec le mode visuel en ligne, il colle à la ligne suivante / actuelle. Certaines commandes (telles yy / dd) forcent également à coller en termes de ligne. |
| yiw / diw / ciw | Copier / couper / modifier le mot actuel. |
La commande y / d / c + move peut également être utilisée.
yw -> Copiez un mot suivant.d3w -> supprimer les 3 prochains mots.| Clé / commandes | Fonction |
|---|---|
| u / ctrl-r | Annuler / refaire. |
| r / r | Remplacez un caractère / plusieurs caractères. |
| J | Combiner deux lignes. |
| . | Il est corrigé pour faire: Replace the following word with a clipboard (utile à utiliser par une recherche). |
| ~ | Changer de cas. |
| / / | Démarrer la recherche (la boîte de recherche sera ouverte) |
| n / n | Rechercher suivant / précédent (certaines applications ne prennent en charge que la recherche suivante) |
| * | Recherchez le mot sous le curseur. |
| ZZ / ZQ | Enregistrer et quitter / quitter. |
| Clé / commandes | Fonction |
|---|---|
| ESC / Ctrl- [ | Entrez le mode normal. |
| Commande de déplacement | La plupart des commandes de déplacement en mode normal sont disponibles. |
| O / D / X / C | Copier / couper / couper / couper et insérer ( d = x ) |
| O / D / X / C | Déplacez-vous à l'extrémité de la ligne, puis copiez / coupez / coupez / coupez et le mode d'insertion ( D = X ) |
| iw | Sélectionnez le mot actuel. |
| * | Recherchez le mot sélectionné. |
| Clé / commandes | Fonction |
|---|---|
| ESC / Ctrl- [ | Entrez le mode normal. |
| W + Retour | Sauvegarder |
| Espace W + | Sauver en tant que |
| W + Q | Enregistrer et arrêter |
| q | Quitter |
| H | Aide ouverte de la demande |
Reportez-vous à Ranger qui est un gestionnaire de fichiers de console avec VI Key Bindings.
| Clé / commandes | Fonction |
|---|---|
| H / J / K / L | BackSpace (retourne au répertoire parent) / down / up / Entrée (entre dans le répertoire sélectionné ou ouvre un fichier) |
| Alt + u / i / j / k | basculer entre les quad-répertoires |
| ' | menu Links rapides |
Les tests sont exécutés en exécutant tests/run_vimahk_tests.ahk . Un bloc-notes et une fenêtre VIM sont ouverts et VIM_AHK est démarré.
Le système de test utilisé est une série de cas de test dans tests/testcases.txt représentant des touches à envoyer à vim_ahk. Ceux-ci sont envoyés aux fenêtres Open VIM et Bloc-notes, et le texte résultant est comparé.
Les tests peuvent être très floconneux, donc doivent être utilisés comme guide et pour exécuter des chemins de code pour vérifier les erreurs. Les tests doivent être exécutés avec un INI par défaut.