Portez les meilleures commandes Vim dans votre éditeur de texte préféré

Je suis sûr que tout le monde peut convenir que le pouvoir et le contrôle offerts par un programme comme Vim sont incroyables. Cependant, naturellement, beaucoup ne sont pas à l'aise avec les différents modes, et le ligne de commande sentir de cela. Il est difficile de rivaliser visuellement avec une belle interface utilisateur, comme Espresso. Mais que se passerait-il si nous pouvions prendre certaines des commandes / raccourcis Vim les plus populaires et les transférer manuellement pour les utiliser dans Espresso? Ne serait-ce pas le meilleur des deux mondes?


Le but

Vous obtiendrez le maximum de ce tutoriel si vous avez une connaissance modeste de Vim et de sa syntaxe..

Mettons quelques choses au clair dès le départ. Travailler avec Vim, c'est travailler avec une langue. c'est précisément pourquoi il est si puissant. Voulez-vous supprimer les quatre mots suivants? Facile, tapez c4w (changez quatre mots). Qu'en est-il des deux mots suivants? Eh bien, nous connaissons la syntaxe: C2w. Hmm… et si je dois supprimer les trois lignes suivantes de la position du curseur? Encore une fois, nous n’avons pas à mémoriser une commande clavier séparée; nous utilisons plutôt le langage: 3dd (effacez les trois lignes suivantes).

Notre objectif est de transférer la plus grande partie de cette fonctionnalité sur le célèbre éditeur Espresso for Mac. La raison pour laquelle cela est spécifique à Espresso est que nous allons utiliser des macros pour imiter une poignée de tâches pour chaque commande. Les tâches / frappes de clavier spécifiques varient d'un éditeur à l'autre.

J'espère que les membres de la communauté commenceront à créer leurs propres les ports pour leurs éditeurs préférés. À ce stade, nous pouvons développer un référentiel sur Github.

Nous ne pouvons certainement pas transférer la langue entière et ses modes vers Espresso; c'est impossible. Mais nous pouvons imiter beaucoup des commandes les plus populaires avec des macros.


Screencast complet



Pourquoi s'embêter?

Je suppose que la réponse à cette question dépend entièrement de… vous. Quand j'ai commencé mon procès de 4 semaines de Vim, en septembre, je suis rapidement tombé amoureux des modes et de la langue. Cependant, chaque éditeur a ses avantages et ses inconvénients. Dans mon cas, même si j'aime toujours utiliser Vim tous les jours, je n'aime pas comment:

  • Même avec des plugins, comme NerdTREE, il est toujours difficile pour moi de travailler avec de grands projets et des structures de dossiers..
  • Travailler avec des fichiers, via FTP, était plus difficile que d'utiliser Espresso.
  • On ne peut nier que Vim ne peut pas être aussi jolie qu'une application Cocoa native.
  • Espresso a un coup de pied aperçu en direct fonctionnalité pouvant être activée dans un nouvel onglet, simplement en tapant Commande + Option + P. En outre, cette fenêtre se met à jour en temps réel, au fur et à mesure que vous tapez.
  • J'ai eu du mal à trouver des utilitaires de débogage adéquats pour Vim.

Récemment, alors que je jouais avec les macros de clavier, je me suis demandé s’il existait un moyen d’utiliser cette fonctionnalité. Peut-être aimerez-vous cette idée? peut-être que tu détestes.


Outils requis

Tandis que Vim est 100% gratuit (cela fait partie de sa grandeur), Espresso ne l’est pas. De plus, nous allons créer des macros de clavier avec un programme appelé Keyboard Maestro. Cela aussi n'est pas gratuit. Je suis certain que certains programmes de création de macros open source sont disponibles sur le Web. Cependant, celui-ci est le meilleur que j'ai pu trouver. Ça vaut les 35 $.

Pour suivre, vous aurez besoin de:

  • Un mac
  • Une copie de l'éditeur de code Espresso de MacRabbit. Encore une fois, vous pouvez utiliser n’importe quel éditeur. mais les macros seront légèrement différentes. Suivez ce tutoriel, puis créez les macros de votre propre éditeur. (Ensuite, faites le moi savoir!)
  • Une copie de Keyboard Maestro. Si vous ne l'avez jamais utilisé, vous pouvez télécharger une version d'évaluation entièrement fonctionnelle à partir de son site Web. MacAppStorm a un excellent article sur KeyBoard Maestro, si vous avez besoin d'un apprêt.

Votre première macro

Commençons par une simple macro. Utiliser Vim dans Ordinaire en mode, on peut taper ciw (changer le mot intérieur) pour supprimer le mot actuel et passer à insérer mode.

Maintenant, Espresso n'a pas modes, mais, comme je l'ai trouvé, ça va. Nous pouvons toujours taper ces commandes; alors qu'ils seront entrés en texte normal, dès que la macro se déclenchera, ils seront supprimés très rapidement.

Donc, pour notre première macro, nous voulons imiter cette fonctionnalité. Quand le curseur est au dessus d'un mot, je veux taper rapidement cw changer le mot.

Umm… pourquoi ne pas simplement frapper le Commande + Maj + W raccourci?

Oui, nous pourrions le faire, mais, à mon avis, nous ne devrions pas.

  • Si chaque commande simple a son propre raccourci modificateur + touche déroutant, il devient rapidement difficile de toutes les mémoriser..
  • J'adore l'aspect linguistique de Vim. Une fois que vous l’apprenez, l’idée de revenir à l’appui sur plusieurs touches du modificateur devient très pénible..
  • Un grand avantage de Vim est qu’il insiste sur le fait de garder vos doigts verrouillés (autant que possible) sur la rangée centrale de votre clavier. Cela vous permet non seulement de taper plus rapidement, mais vous n'avez pas non plus besoin d'étirer vos doigts chaque fois que vous souhaitez effectuer une opération simple..

Tache 1

Lors de la création d'une nouvelle macro, la première étape consiste à déterminer comment exécuter la tâche manuellement dans l'éditeur de code. Dans ce cas, Maj + Commande + W sélectionnera le mot. Ensuite, le effacer la clé, bien sûr, supprimera le mot. Ces deux commandes imiteront à elles seules ciw à Vim.

Lancez le clavier Maestro

L'étape suivante consiste à créer la macro. Lancez Keyboard Maestro et, avant toute chose, créez un nouveau groupe spécialement pour vos commandes Vim.

De cette façon, vous pouvez limiter l'application de ces raccourcis à Espresso et non, par exemple, à Microsoft Word. J'ai appelé mon groupe, VimMimic.

Maintenant, nous devons créer une nouvelle macro, définir un déclencheur et choisir le expandeur..

Si vous vous demandez pourquoi nous n'utilisons pas votre programme TextExpander existant, c'est parce que de tels programmes ne font que développer du texte. Mais nous devons effectuer des macros ou des tâches.

Enregistrement de la macro

Une fois la préparation terminée, nous devons maintenant enregistrer nos étapes. Bien que Keyboard Maestro dispose de nombreux dossiers / commandes, ce qui est génial, c’est qu’il offre un bouton «Enregistrer», qui permet d’écouter et d’enregistrer toutes les touches que vous tapez, les mouvements de la souris / clics, etc..

Si vous en avez besoin, retournez à Espresso et mémorisez les touches / commandes à saisir pour changer le mot. Cependant, soyez intelligent à ce sujet. Par exemple, votre macro doit-elle sélectionner quelque chose comme sheldon.couper dans son intégralité? Ou voulez-vous qu'il ne sélectionne que le mot, jusqu'à (ou après) la période? À l'espresso, Commande + Maj + W effectuera ce dernier. Décidez vous-même sur celui-ci. Je pense que je vais faire le premier et tout sélectionner.

Dans ce cas, je dois être plus intelligent en ce qui concerne la macro. Après un peu de jeu, voici ce que je suis venu avec.

Si vous le souhaitez, créez une seconde macro, ciw (changer le mot intérieur), qui ne sélectionnera qu'avant ou après la période.

L'essayer

Une fois votre macro terminée, essayez-la! Revenez à Espresso et, une fois que le curseur est sur un mot, tapez cw. Ceci déclenchera alors la macro dans laquelle toutes vos actions précédemment enregistrées seront jouées en haute vitesse..

J'espère qu'il est possible d'effectuer une macro sans mettre à jour l'interface utilisateur jusqu'à la fin. Mais je ne sais pas comment faire pour le moment.

Tout un travail

Si vous n'êtes pas un utilisateur de Vim, je m'attendrais à ce que vous pensiez: "Tout ce travail consiste simplement à supprimer un mot?" Et croyez-moi, je comprends. Ce que je peux vous dire, c’est que, une fois que vous avez utilisé Vim pendant un moment, une syntaxe de langage ressemble beaucoup plus à votre sens que de mémoriser d’innombrables raccourcis clavier.

Et, d'accord, c'est un exemple très minime.


j pour Down; k pour Up

La première fois que j’ai appris que je devais utiliser les lettres pour monter, descendre, gauche et droite (kjhl), J'ai ri. C'est comment vieux! Mais une fois que vous avez engagé les clés de la mémoire musculaire, votre vitesse augmente. Vous n'êtes plus obligé de faire glisser votre main droite sur la partie inférieure droite du clavier pour appuyer sur la flèche vers le bas. Nope - vos mains restent en position de repos car ces touches sont directement dans la deuxième rangée.

Vim utilise modes pour basculer entre les commandes et l’insertion de texte. Mais, comme mentionné ci-dessus, Espresso ne les a pas. Donc, nous allons utiliser le verrouillage des majuscules clé pour servir de notre Ordinaire mode.

Réacheminement de la clé de verrouillage des majuscules

Demandez-vous: "À quelle fréquence dois-je utiliser le verrouillage des majuscules "Si vous êtes comme moi, la réponse est:" presque jamais. "Dans cet esprit, utilisez-le et redirigez sa fonction. Sur un Mac, c'est simple..

Aller à Préférences Système -> Clavier -> Touches de modification, et changer le verrouillage des majuscules pour acheminer au Contrôle clé que j'ai toujours du mal à cibler lorsque je tape (au moins sur mon ordinateur portable).

Maintenant, chaque fois que vous appuyez sur verrouillage des majuscules, la contrôle la clé sera déclenchée.


Créer une nouvelle macro

Celui-ci est ridiculement simple, mais cela fonctionne. Maintenant, quand vous tapez Verrouillage majuscule + J, la flèche vers le bas sera déclenchée. Il est important de garder à l'esprit que vous n'êtes pas obligé de l'utiliser, si vous ne le souhaitez pas. Vous pouvez toujours appuyer sur la flèche vers le bas. Mais, pour ceux qui se sentent plus à l'aise de garder leurs mains en position de repos, cela pourrait être préférable.

Répéter pour toutes les directions

Votre prochaine étape consiste à répéter le cycle pour le haut, la gauche et la droite - en utilisant exactement la même méthode.


Changer suivant '

Vim a une belle commande, ci ' cela vous permet de vider le contenu de la chaîne suivante, entre guillemets simples. C'est incroyablement utile et peut vraiment accélérer votre codage.

Essayons de créer une macro pour le faire dans Espresso. Celui-ci sera plus compliqué, car nous devons utiliser l'outil de recherche dans Espresso pour rechercher l'occurrence suivante d'un seul devis. Donc, la solution ne sera pas parfaite, mais le travail sera partiellement fait.

Essayez vous-même. N'importe où dans votre document, tapez cn '. Malheureusement, du moins pour le moment, cela ne fonctionne parfaitement que pour des mots isolés entourés de guillemets..


Changer jusqu'à la fin de la ligne

Dans Vim, si vous tapez une capitale C, en mode normal, il supprime tout le texte d'une ligne qui vient après la position du curseur. C'est très utile. Nous pouvons faire la même chose dans Espresso avec une simple macro. toutefois, Maj + C ne fonctionnera pas, parce que l'espresso n'a pas modes. Faisons Caps Lock + C au lieu. Rappelez-vous, caps maintenant les routes vers la Contrôle clé!


Supprimer la balise environnante

Dans Vim, avec le plugin Surround, je peux taper dst (supprimer la balise environnante) pour supprimer une balise wrapping. Je l'utilise souvent. Hmm - ce sera plus compliqué dans Espresso, mais cela peut être fait. Voici ce que je suis venu avec; essayez-le sur votre machine.

C'est un peu plus compliqué, mais ça marche!

Notez que, s'il semble que certaines de ces actions peuvent être supprimées, elles sont là parce que j'ai trouvé des situations étranges où elles étaient nécessaires. Mieux vaut être en sécurité.


Changer la balise environnante

Aussi utile que de supprimer la balise environnante, est en changeant le nom de la balise.

Il y a une bizarrerie à propos de cette méthode particulière. Comme Espresso n’est pas basé sur le mode, lorsque vous modifiez l’étiquette, cette commande vous mènera jusqu’au point où vous pourrez modifier la valeur de l’étiquette. Une fois que vous avez fait, appuyez simplement sur Droite, et collez le texte d'origine (copié par la macro). Vous verrez ce que je veux dire quand vous l'essayez. Faites-moi savoir si Espresso est doté d'une commande intégrée change-tag-name.


Conclusion

Bon, ça devrait vous aider à démarrer. Si vous êtes un membre Premium, assurez-vous de vous référer à la partie vidéo de ce tutoriel pour une démonstration plus individuelle. J'ai créé un dépôt sur Github, qui contient des dizaines de commandes que vous êtes libre d'utiliser (et d'améliorer) comme vous le souhaitez..

Les choses à se méfier de

  • Ne choisissez pas les raccourcis que vous voudriez taper normalement. Par exemple, en utilisant jj supprimer une ligne va tout gâcher à chaque frappe "blague."
  • Attention aux commandes intégrées. C'est toujours difficile. il peut falloir quelques essais et erreurs pour trouver les raccourcis les plus non intrusifs.

Alors qu'est-ce que tu en penses? Aimes tu l'idée? Je suis curieux, bien que je sois dans ce dernier camp.

Le groupe de macros Keyboard Maestro est constamment mis à jour. Pour télécharger la version la plus récente, veuillez l’obtenir ici: http://github.com/JeffreyWay/VimMimic-for-Espresso

Liens du tutoriel:

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