Establecer archivo/archivo exe de autohotkey para la emulación VIM.
Vim.AHK es el archivo de configuración para autohotkey (autohotkey_l).
Vim.exe es una aplicación independiente hecha de vim.AHK (disponible en la página de versiones).
Esta es la emulación vim para Windows. Si está interesado en la misma configuración para Mac, pruebe la emulación VIM para Karabiner - Software para macOS: Karabiner -Elements Complex_modifications Rules por RCMDNK.
Este script es para autohotkey v2.
Si está utilizando AutoHotKey V1, use la versión V0.13.2 (o la rama AHK_V1).
Si ya ha instalado autohotkey, simplemente abra vim.ahk con autohotkey.
Si está ejecutando autohotkey con otro script, puede incluirlo en su script usando autohotkey ... Copie el directorio Vim.AHK y Lib en Users%username%Documents o dónde está el script, y agregue la siguiente línea en AutoHotkey.AHK o su script:
#Include %A_LineFile%..vim.ahk
Al final de la sección Auto-Ejecutiva.
También puede usar vim_ahk.exe , que puede funcionar independiente sin autohotkey.
Para obtener ejecutable, vaya a la página de versiones y descargue el último archivo zip.
Descomprima el archivo zip y coloque la carpeta VIM_AHK extraída donde desee, luego inicie vim_ahk.exe .
Nota
Coloque la carpeta VIM_AHK_ICONS en la misma carpeta con vim_ahk.exe , de lo contrario, la función de icono de menú de bandeja no funciona.
Clone vim_ahk y go vim_ahk carpeta, y ejecute build.bat .
.build.bat en PowerShell o símbolo del sistema.Encontrará la carpeta VIM_AHK que contiene vim_ahk.exe y vim_ahk_icons .
La configuración predeterminada habilita VIM-Mode para las siguientes aplicaciones:
Puede cambiarlos desde el menú de clic derecho del icono de la bandeja de tareas (encuentre Settings VimMenu -en la lista), o inicie la ventana de configuración por Ctrl-Alt-Shift-v .
Si desea cambiar las aplicaciones directamente en el script, agregue la variable VimGroup antes de Vim := new VimAhk() en Vim.AHK (el título/clase de la ventana se puede verificar por ventana espía de autohotkey), o escribir antes de incluir vim.ahk
Línea de ejemplo:
VimGroup := "ahk_exe chrome.exe,ahk_exe firefox.exe"
Múltiples aplicaciones pueden ser escritas por un comas.
Nota
Esto sobrescribirá las aplicaciones predeterminadas. Si desea agregar estas aplicaciones a las aplicaciones predeterminadas, agregue las siguientes aplicaciones después de sus aplicaciones:
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
O puede usar el menú de configuración de la opción GUI que se describe a continuación.
La configuración predeterminada de VimSetTitleMatchMode es 2, lo que hace que los métodos coincidentes Contain .
Si establece OneNote , se incluirán todas las ventanas con un título que contenga OneNote (por ejemplo, XXX's OneNote ). Si establece VimSetTitleMatchMode como 3, solo se incluirá el título exacto de OneNote .
Puede que no funcione en OneNote. OneNote puede tener un nombre de ventana como el cuaderno del usuario: OneNote , en lugar de OneNote .
En ese caso, debe verificar el título de la ventana de OneNote con Window Spy.
Window Spy le dará el título de la ventana, la clase y el proceso como:
User's Notebook - OneNote
ahk_class ApplicationFrameWindow
ahk_exe ApplicationFrameHost.exe
Si agrega alguna de las líneas anteriores a VIMGroup, VIM_AHK funciona en OneNote. Pero si establece ahk_class ApplicationFrameWindow o ahk_exe ApplicationFrameHost.exe , VIM_AHK también funciona en otras aplicaciones que usan estos nombres de clase/procesos (la mayoría de las aplicaciones instaladas desde Microsoft Store).
Ejemplos de aplicaciones:
ahk_exe chrome.exeahk_exe firefox.exeahk_exe EXCEL.EXEahk_exe soffice.bin (para todas las aplicaciones de LibreOffice) Además de VimGroup , existen las siguientes opciones que puede configurar en su script. Todo esto también se puede cambiar desde el menú de configuración.
| Opción | Descripción | Por defecto |
|---|---|---|
| Vimescnormal | Si 1, Short Press ESC establece el modo normal, mientras que Long Press ESC envía ESC. | 1 |
| Vimsendescnormal | Si 1, breve presiona esc a ESC ESC en el modo normal. | 0 |
| Vimlongescnormal | Si 1, se cambia la prensa corta y la larga prensa de los comportamientos de ESC. | 0 |
| Vimctrlbrackettoc | Si 1, Ctrl- [se comporta como ESC. Si vimctrlBracketNormal es 0, Ctrl- [envía ESC. Si vimctrlBracketNormal es 1, Long Press Ctrl- [envía ESC. | 0 |
| Vimctrlbracketnormal | Si 1, presionando Ctrl- [establece el modo normal, mientras que larga presione Ctrl- [envía ctrl- [. | 1 |
| Vimsendctrlbracketnormal | Si 1, corto presione Ctrl- [Enviar Ctrl- [en el modo normal. | 0 |
| Vimlongctrlbracketnormal | Si 1, la prensa corta y la larga prensa de Ctrl- [se cambian los comportamientos. | 0 |
| Vimchangecaretwidth | Si 1, verifique el carácter debajo del cursor antes de una acción. Actualmente se usa para: a en el modo normal (verifique si el cursor se encuentra al final de la línea). | 0 |
| Vimrestoreime | Si 1, el estado IME se restaura al ingresar al modo de inserción. | 1 |
| Vimjj | Si 1, jj cambia el modo al modo normal desde el modo de inserción. | 0 |
| Vimtwoletteresc | Una lista de pares de caracteres para presionar juntos durante el modo de inserción para llegar al modo normal. Por ejemplo, un valor de jf significa presionar j y f al mismo tiempo ingresará al modo normal.Se puede establecer una combinación múltiple por separado por , . (por ejemplo jf,jk,sd ) | |
| VimdisableUnused | Desactivar el nivel de claves no utilizadas en otro modo que no sea el modo de inserción:
| 3 |
| Vimsettitlematchmode | SettitLematchMode:
| 2 |
| VimsettitlematchModefs | SettitLematchMode:
| Rápido |
| Vimiconcheckinterval | Intervalo para verificar el estado VIM_AHK (MS) y cambiar el icono de la bandeja (consulte la imagen a continuación). Si se establece en 0, el icono AHK original se establece y no se cambia. | 1000 |
| Vimverbosa | Nivel detenidamente:
| 1 |
| Vimapplist | Uso de la lista de aplicaciones:
| Permitir lista |
| Vimgroup | Las aplicaciones en Witch VIM_AHK están habilitadas. | Consulte la sección de aplicaciones |
Puede agregar sus opciones antes de incluir vim.ahk en su script en la sección de ejecución automática como:
VimVerbose := 2
#Include pathtovim.ahk
Si desea cambiarlos directamente en el script vim.AHK, agregue estas variables antes de Vim := new VimAhk() .
Nota
Estas variables VIM sobrescribirán los valores predeterminados y los valores iniciales. Después de verificar estas variables, se lee el archivo de configuración. Si ya ha ejecutado VIM_AHK, se creó el archivo de configuración y se guardó todas las configuraciones. Para reflejar la nueva configuración, intente Reset en la ventana de configuración de la opción GUI.
Nota
Vimiconcheckinterval
Si establece vimiconcheckinterval como distintos de cero, el icono de la bandeja se cambia cuando cambia el modo o cambia las aplicaciones a VIM_AHK habilitados o no habilitados.
Advertencia
Vimchangecaretwidth
El ancho del caretón solo se puede cambiar en aplicaciones específicas: WordPad, Word o OneNote. En el bloc de notas o el explorador, el ancho del careto se mantiene pero no cambia.
Para la mayoría de las otras aplicaciones, el ancho del careto se mantiene como el ancho original.
Cuando esta opción está habilitada, la ventana actual pierde brevemente el enfoque cuando se cambia el modo.
Si habilitó esta opción y cambia el ancho del careto de espesor en el modo normal y deshabilite la opción, el ancho del cursor se mantiene tan grueso. Para revertir el ancho del careto, vuelva a habilitar la opción e ingrese el modo de inserción en el WordPad o algo para revertir el ancho del careto, luego deshabilite la opción.
Puede cambiar estas opciones desde el menú de clic derecho del icono de la bandeja de tareas (Find VimMenu - Settings en la lista), o inicie la ventana de configuración por Ctrl-Alt-Shift-v .
Aquí, puede agregar aplicaciones, cambiar la tecla de cambio de modo o cambiar el nivel detallado.
Si presiona Reset , la configuración predeterminada se mostrará en la ventana. Estas configuraciones se habilitarán solo si presiona el botón OK .
Estas opciones VimXXX sobrescriben estas configuraciones predeterminadas en su script descrito anteriormente. (IE Reset restaurará sus opciones en el script además de la configuración predeterminada de VIM_AHK).
| Llave | Función |
|---|---|
| Ctrl-alt-shift-v | Iniciar ventana de configuración de la opción GUI. |
| Ctrl-alt-shift-s | Suspender/reiniciar vim_ahk. |
| Ctrl-alt-shift-c | Mostrar la ventana de verificación de estado. (Solo en las aplicaciones vimgroup). |
Aquí están los modos principales.
| Modo | Descripción |
|---|---|
| Modo de insertar | Estado original de Windows |
| Modo normal | Como en VIM, hjkl , w , etc., y hay algunos comandos tipo VIM disponibles. |
| Modo visual | Hay tres modos visuales: personajes, en cuanto a línea y en cuanto a bloque. El modo visual en cuanto a bloque es válido solo para aplicaciones que admiten la selección de bloques (dicho Terapad). |
| Modo de comando | Se puede usar para guardar el archivo/renunciar. |
El estado inicial es el modo de inserción, luego ESC o Ctrl-[ lo lleva al modo normal.
En el modo normal, i es la clave para volver al modo de inserción.
v , V y Ctrl-v son la clave para el modo visual en cuanto al personaje, en cuanto a la línea y al bloque, respectivamente.
Después de presionar : hay unos pocos comandos para guardar/dejar de fumar están disponibles.
| Clave/comandos | Función |
|---|---|
| ESC/CTRL- [ | Ingrese el modo normal. Sosteniendo (0.5s) Estas teclas emulan ESC/Ctrl- [. |
| JJ | Ingrese el modo normal, si está habilitado. |
| Dos letras personalizadas | Si se establece el mapeo de dos letras. |
ESC/CTRL- [Apague IME si IME está encendido. ESC actúa como ESC cuando IME está encendido y la conversión de instrucciones. Ctrl- [Desactiva IME y entra en el modo normal incluso si IME está encendido.
Long Press ESC (Ctrl- [) enviará estas teclas originales, si VimLongEscNormal ( VimLongCtrlBracketNormal no está habilitado (0).
Si VimLongEscNormal ( VimLongCtrlBracketNormal ) está habilitado, una sola prensa enviará teclas originales y una larga prensa cambiará el modo al modo normal.
Si se usa una tecla de acceso de dos letras personalizada para ingresar al modo normal, las dos letras deben ser diferentes.
Advertencia
Un personaje se puede usar solo para una tecla de acceso rápido de dos letras. Si especifica ab y bc , ba (Push b primero y luego a ) no funciona. Sin embargo, si presiona a primero, entonces ab funcionará.
| Clave/comandos | Función |
|---|---|
| i/i/a/a/o/o | Ingrese el modo de inserción debajo del cursor/inicio de la línea/al lado del cursor/final de la línea/línea siguiente/línea anterior. |
| V/V/CTRL-V | Ingrese el modo visual de personaje/línea de línea/bloque. |
| : | Ingrese el modo de línea de comando |
| Clave/comandos | Función |
|---|---|
| H/J/K/L | Izquierda/hacia abajo/hacia arriba/derecha. |
| 0/$ | Muévase al inicio/final de la línea. |
| CTRL-A/CTRL-E | Muévase al inicio/final de la línea (emacs como). |
| ^ | Muévase al personaje inicial de la línea no espacial. |
| W/W | Muévete al comienzo de la siguiente palabra. |
| e/e | Moverse al final de la palabra. (En realidad, muévase al comienzo de la siguiente palabra y mueva un personaje a la izquierda). |
| cama y desayuno | Muévete al comienzo de la palabra anterior. |
| Ctrl-U/Ctrl-D | Sube/baja 10 línea. |
| CTRL-B/CTRL-F | PageUp/Paggown. |
| GG/G | Vaya a la parte superior/inferior del archivo |
| Espacio | Bien. |
| Ingresar | Muévete al comienzo de la siguiente línea. |
Nota
Ingrese trabajos solo para aplicaciones de editor (para otros que no sean Explorer, Q-Dir, funciona como Intro incluso en el modo normal).
Además, Repeat también está disponible para algunos comandos.
| Comandos de ejemplo | Acción |
|---|---|
| 4J | Abajo 4 líneas |
| 3W | Mover 3 palabras hacia adelante |
| 100J | Abajo 100 líneas |
| Clave/comandos | Función |
|---|---|
| yy, y | Copie la línea. |
| dd | Cortar la línea. |
| D | Corte desde aquí hasta el final de la línea. |
| CC | Cambie la línea (ingrese al modo de inserción). |
| do | Corte desde aquí hasta el final de la línea e ingrese el modo de inserción. |
| x/x | Elimine un personaje debajo/antes del cursor (no registrado en el portapapeles). |
| páginas | Pegar al siguiente lugar actual/actual. Si se realizó Copy/Cut con el modo visual en cuanto a línea, se pega a la línea siguiente/actual. Algunos comandos (tales yy/dd) también obligan a pegar como línea. |
| Yiw/Diw/CIW | Copiar/cortar/cambiar la palabra actual. |
El comando Y/D/C+Move también se puede usar.
yw -> Copiar la siguiente palabra.d3w -> Eliminar las siguientes 3 palabras.| Clave/comandos | Función |
|---|---|
| u/ctrl-r | Deshacer/rehacer. |
| R/R | Reemplace un personaje/múltiples caracteres. |
| J | Combinar dos líneas. |
| . | Se arregla para hacer: Replace the following word with a clipboard (útil para usar con una búsqueda). |
| ~ | Caso de cambio. |
| / | Iniciar búsqueda (el cuadro de búsqueda se abrirá) |
| n/n | Search Next/Anterior (algunas aplicaciones admiten solo la próxima búsqueda) |
| * | Busque la palabra debajo del cursor. |
| ZZ/ZQ | Guardar y dejar/salir. |
| Clave/comandos | Función |
|---|---|
| ESC/CTRL- [ | Ingrese el modo normal. |
| Mueve el comando | La mayoría de los comandos de movimiento en el modo normal están disponibles. |
| y/d/x/c | Copiar/cortar/cortar/cortar e insertar ( d = x ) |
| Y/d/x/c | Muévase al final de la línea, luego copie/corte/corte/corte y el modo de inserción ( D = X ) |
| IW | Seleccione la palabra actual. |
| * | Busque la palabra seleccionada. |
| Clave/comandos | Función |
|---|---|
| ESC/CTRL- [ | Ingrese el modo normal. |
| W + Return | Ahorrar |
| W + espacio | Ahorrar |
| W + Q | Guardar y salir |
| Q | Abandonar |
| H | Abra la ayuda de la aplicación |
Consulte Ranger, que es un administrador de archivos de consola con enlaces de clave VI.
| Clave/comandos | Función |
|---|---|
| H/J/K/L | Backspace (vuelve al directorio principal)/down/up/ingrese (ingresa el directorio seleccionado u abre un archivo) |
| Alt+u/i/j/k | Cambiar entre quad-directorios |
| ' | Menú enlace rápido |
Las pruebas se ejecutan ejecutando tests/run_vimahk_tests.ahk . Se abre un bloc de notas y vim, y se inicia VIM_AHK.
El sistema de pruebas utilizado es una serie de casos de prueba en tests/testcases.txt que representan las pulsaciones de teclas para enviar a VIM_AHK. Estos se envían a las ventanas Open VIM y Notepad, y se compara el texto resultante.
Las pruebas pueden ser muy locas, por lo que deben usarse como guía y ejecutar rutas de código para verificar los errores. Las pruebas deben ejecutarse con un INI predeterminado.