Transporta los mejores comandos Vim a tu editor de texto favorito

Estoy seguro de que todos pueden estar de acuerdo en que el poder y el control que ofrece un programa como Vim es increíble. Sin embargo, comprensiblemente, muchos no se sienten cómodos con los diversos modos, y la línea de comando sentir de eso Es difícil competir, visualmente hablando, con una hermosa interfaz de usuario, como Espresso. Pero, ¿qué pasaría si pudiéramos tomar algunos de los comandos / atajos de Vim más populares y transferirlos manualmente para usarlos en Espresso? ¿No sería eso lo mejor de ambos mundos??


La meta

Aproveche al máximo este tutorial si tiene una familiaridad modesta con Vim y su sintaxis.

Vamos a aclarar algunas cosas, desde el principio. Trabajar con Vim es trabajar con un lenguaje; Esto es específicamente por qué es tan poderoso. ¿Quieres borrar las siguientes cuatro palabras? Fácil, tipo c4w (cambiar cuatro palabras). ¿Qué pasa con las siguientes dos palabras? Bueno, sabemos la sintaxis: c2w. Hmm ... ¿qué pasa si necesito eliminar las siguientes tres líneas de la posición del cursor? Nuevamente, no tenemos que memorizar un comando de teclado separado; Nosotros, en cambio, usamos el lenguaje: 3dd (borra las siguientes tres líneas).

Nuestro objetivo es transferir la mayor parte de esta funcionalidad al popular editor, Espresso para Mac. La razón por la que esto es específico de Espresso es porque vamos a usar macros para imitar un puñado de tareas para cada comando. Las tareas específicas / golpes de teclado variarán de un editor a otro.

Espero que los miembros de la comunidad comiencen a crear sus propios puertos para sus editores favoritos. En ese momento, podemos desarrollar un repositorio en Github.

Ciertamente no podemos trasladar todo el lenguaje y sus modos a Espresso; eso es imposible. Pero podemos imitar muchos de los comandos más populares con macros.


Screencast completo



Por qué molestarse?

Supongo que la respuesta a esta pregunta depende enteramente de ... . Cuando comencé mi prueba de 4 semanas de Vim, en septiembre, rápidamente me enamoré de los modos y el lenguaje. Sin embargo, cada editor tiene sus ventajas y desventajas. En mi caso, aunque todavía amo y uso Vim todos los días, no me gusta cómo:

  • Incluso con complementos, como NerdTREE, todavía es difícil para mí trabajar con grandes proyectos y estructuras de carpetas.
  • Trabajar con archivos, a través de FTP, fue más difícil que usar Espresso.
  • No se puede negar que Vim no puede ser tan bonita como una aplicación nativa de Cocoa..
  • El espresso tiene un trasero vista previa en vivo característica que se puede habilitar, en una nueva pestaña, simplemente escribiendo Comando + Opción + P. Además, esta ventana se actualiza en tiempo real, a medida que escribe.
  • Luché para encontrar servicios de depuración adecuados para Vim.

Recientemente, cuando estaba jugando con macros de teclado, me pregunté si había alguna forma de portar esta funcionalidad. Tal vez te encantará la idea; tal vez lo odies.


Herramientas requeridas

Mientras que Vim es 100% gratis (eso es parte de su grandeza), Espresso no lo es. Además, vamos a crear macros de teclado con un programa, llamado Keyboard Maestro. Esto, también, no es gratis. Estoy seguro de que hay algunos programas de creación de macros de código abierto disponibles en la web; Sin embargo, este es el mejor que he podido encontrar. Vale la pena los $ 35.

Para seguir adelante, necesitarás:

  • Una mac
  • Una copia del editor de código Espresso de MacRabbit. De nuevo, puedes usar cualquier editor; Pero las macros diferirán ligeramente. Sigue este tut y luego crea las macros de tu propio editor. (A continuación, hágamelo saber!)
  • Una copia del teclado maestro. Si nunca lo ha utilizado, puede descargar una versión de prueba completamente funcional desde su sitio web. MacAppStorm tiene un gran artículo sobre KeyBoard Maestro, si necesitas un manual.

Tu primera macro

Comencemos con una macro simple. Usando Vim en normal modo, podemos escribir ciw (cambiar la palabra interna) para eliminar la palabra actual y pasar a insertar modo.

Ahora, el espresso no tiene modos, Pero, como he encontrado, está bien. Todavía podemos escribir estos comandos; mientras que se ingresarán como texto regular, tan pronto como la macro se active, se borrarán súper rápido.

Entonces, para nuestra primera macro, queremos imitar esta funcionalidad. Cuando el cursor está encima de una palabra, quiero escribir rápidamente cw para cambiar la palabra.

Umm ... ¿por qué no simplemente golpear el Comando + Shift + W atajo?

Sí, podríamos hacer eso, pero, en mi opinión, no deberíamos.

  • Si cada comando simple tiene su propio atajo de tecla de modificador + confuso, rápidamente se vuelve difícil recordarlos todos.
  • Me encanta el aspecto lingüístico de Vim. Una vez que lo aprendas, la idea de volver a presionar varias teclas modifider se convierte en un gran problema..
  • Una gran ventaja para Vim es que pone gran énfasis en mantener sus dedos bloqueados (tanto como sea posible) en la fila central de su teclado. Esto no solo le permite escribir más rápido, sino que también no tiene que estirar los dedos cada vez que desee realizar una operación simple.

Tarea 1

Al crear una nueva macro, el primer paso es averiguar cómo realizar la tarea manualmente en el editor de código. En este caso, Mayús + Comando + W seleccionará la palabra. A continuación, el borrar Clave, por supuesto, borrará la palabra. Esos dos comandos solo imitarán ciw en vim.

Enciende el teclado maestro

El siguiente paso es crear la macro. Inicie Keyboard Maestro y, antes que nada, cree un nuevo grupo específicamente para sus comandos Vim.

De esta manera, puede limitar estos accesos directos para que solo se apliquen a Espresso, y no, por ejemplo, a Microsoft Word. He llamado a mi grupo, VimMimic.

Ahora, necesitamos crear una nueva macro, establecer un disparador y elegir el expansor.

Si se está preguntando por qué no estamos utilizando su programa TextExpander existente, es porque los programas así solo expanden el texto. Pero, tenemos que realizar macros, o tareas.

Grabando la macro

Con la preparación fuera del camino, ahora necesitamos registrar nuestros pasos. Si bien Keyboard Maestro tiene numerosas carpetas / comandos disponibles, lo que es sorprendente es que ofrece un botón "Grabar", donde escuchará y registrará las teclas que escriba, los movimientos / clics del mouse, etc..

Si es necesario, vuelva a Espresso y memorice las teclas / comandos que necesita escribir para cambiar la palabra. Sin embargo, sé inteligente acerca de esto. Por ejemplo, si tu macro selecciona algo como sheldon.couper ¿en su totalidad? ¿O desea que seleccione solo la palabra, hasta (o después) del período? En espresso, Comando + Shift + W se llevará a cabo este último. Decide por ti mismo en este caso. Creo que haré lo primero y seleccionaré todo..

En ese caso, necesito ser más inteligente respecto a la macro. Después de un poco de juego, esto es lo que se me ocurrió.

Si quieres, crea una segunda macro., ciw (cambiar palabra interna), que solo seleccionará antes o después del período también.

Probandolo

Una vez que hayas completado tu macro, ¡pruébala! Vuelva a Espresso y, una vez que el cursor esté sobre una palabra, escriba cw. Esto activará la macro, en la que se ejecutarán todas las acciones grabadas previamente, en alta velocidad..

Espero que haya una forma de realizar una macro sin actualizar la interfaz de usuario hasta el final. Pero, no estoy consciente de cómo hacerlo en este momento.

Un trabajo entero de Lotta

Si no eres un usuario de Vim, espero que pienses: "¿Todo ese trabajo solo para eliminar una palabra?" Y, confía en mí, lo entiendo. Sin embargo, lo que puedo decirte es que, una vez que has usado Vim por un tiempo, una sintaxis similar a un idioma tiene mucho más sentido para ti, que memorizar innumerables atajos de teclas modificadoras..

Y, concedido, este es un ejemplo muy mínimo..


j para abajo k para un máximo

La primera vez que supe que se esperaba que usara las letras para moverme hacia arriba, abajo, izquierda y derecha (kjhl), Me reí. ¿Qué tan anticuado es eso? Pero, una vez que has comprometido las claves para la memoria muscular, tu velocidad aumenta. Ya no tiene que arrastrar la mano derecha a la sección inferior derecha del teclado para presionar la tecla de flecha hacia abajo. No, tus manos permanecen en posición de reposo, ya que esas teclas se encuentran directamente en la segunda fila.

Usos de Vim modos para cambiar entre comandos e insertar texto. Pero, como se mencionó anteriormente, Espresso no tiene estos. Por lo tanto, vamos a utilizar el Bloq Mayús clave para servir como nuestro normal modo.

Redireccionando la tecla de bloqueo de mayúsculas

Pregúntese: "¿Con qué frecuencia utilizo el Bloq Mayús ¿Clave? "Si eres como yo, la respuesta es:" Casi nunca ". Teniendo eso en mente, aprovecha un poco y vuelve a enrutar su función. En una Mac, esto es simple.

Ir Preferencias del sistema -> Teclado -> Teclas modificadoras, y cambiar el Bloq Mayús para encaminar al Controlar clave, que siempre tengo problemas para apuntar cuando estoy escribiendo (al menos en mi computadora portátil).

Ahora, en cualquier momento que pulses Bloq Mayús, la controlar la llave se activará.


Crear una nueva macro

Este es ridículamente simple, pero funciona. Ahora, cuando escribes Bloqueo de mayúsculas + J, la flecha hacia abajo se activará. Es importante tener en cuenta que no está obligado a usar esto, si no lo desea. Todavía puede presionar la tecla de flecha hacia abajo. Pero, para aquellos que se sienten más cómodos manteniendo sus manos en posición de descanso, esto podría ser preferible.

Repetir para cada direccion

El siguiente paso es repetir el ciclo hacia arriba, hacia la izquierda y hacia la derecha, utilizando exactamente el mismo método..


Cambiar siguiente '

Vim tiene un buen comando, ci ' que le permite vaciar el contenido de la siguiente cadena, envuelto en comillas simples. Es increíblemente útil y realmente puede acelerar tu codificación.

Intentemos crear una macro para hacer esto en Espresso. Este será más complicado, porque tenemos que usar la herramienta de búsqueda en Espresso para buscar la próxima aparición de una sola cita. Entonces, la solución no será perfecta, pero hará el trabajo parcialmente.

Pruébelo usted mismo. En cualquier lugar de su documento, escriba cn. Desafortunadamente, al menos por ahora, solo funciona perfectamente para palabras sueltas entre comillas.


Cambiar hasta el final de la línea

En Vim, si escribe una mayúscula do, en modo normal, borrará todo el texto en una línea que viene después La posición del cursor. Es muy útil. Podemos hacer lo mismo en Espresso con una macro simple. sin embargo, Mayús + C no funcionará, porque el espresso no tiene modos. Hagamos Bloqueo de mayúsculas + C en lugar. Recuerda, las gorras ahora rutas a la Controlar llave!


Eliminar etiqueta circundante

En Vim, con el complemento Surround, puedo escribir dst (eliminar la etiqueta circundante) para eliminar una etiqueta de envoltura. Lo uso a menudo. Hmm, esto será más complicado en Espresso, pero se puede hacer. Esto es lo que se me ocurrió; pruébalo en tu máquina.

Es un poco más complicado, pero funciona.!

Tenga en cuenta que, si parece que algunas de esas acciones pueden eliminarse, están ahí porque encontré situaciones extrañas en las que eran necesarias. Mejor estar seguro.


Cambiar la etiqueta circundante

Tan útil como eliminar la etiqueta circundante, es cambiando el nombre de la etiqueta.

Hay una peculiaridad sobre este método en particular. Debido a que Espresso no se basa en el modo, cuando cambia la etiqueta, este comando lo llevará hasta el punto en que puede cambiar el valor de la etiqueta. Una vez que lo haga, simplemente presione Derecha, y pegue en el texto original (que fue copiado por la macro). Verás lo que quiero decir cuando lo pruebes. Avísame si Espresso tiene un comando incorporado para cambiar el nombre de la etiqueta.


Conclusión

Está bien, eso debería empezar. Si eres miembro Premium, asegúrate de consultar la parte del video de este tutorial para una demostración más personalizada. He creado un repositorio en Github, que contiene docenas de comandos que puede usar (y mejorar) como desee..

Cosas a tener en cuenta

  • No elijas atajos que escribirías normalmente. Por ejemplo, usando dd Eliminar una línea arruina las cosas cada vez que escribes "broma"
  • Tenga cuidado de anular los comandos incorporados. Esto siempre es difícil; Puede tomar un poco de prueba y error encontrar los accesos directos más no intrusivos.

¿Entonces, qué piensas? ¿Te gusta la idea? Tengo curiosidad, aunque encajo en este último campamento..

El grupo de macros Keyboard Maestro se actualiza constantemente. Para descargar la versión más actualizada, consígala aquí: http://github.com/JeffreyWay/VimMimic-for-Espresso

Enlaces Tutoriales:

Espresso: http://macrabbit.com/espresso/
Teclado Maestro: http://www.keyboardmaestro.com