Portieren Sie die Best Vim-Befehle in Ihren bevorzugten Texteditor

Ich bin sicher, dass alle einig sind, dass die Kraft und Kontrolle, die ein Programm wie Vim bietet, unglaublich ist. Es ist jedoch verständlich, dass sich viele mit den verschiedenen Modi und der Befehlszeile fühle mich davon Es ist schwer, visuell mit einer schönen Benutzeroberfläche wie Espresso zu konkurrieren. Aber was wäre, wenn wir einige der bekannteren Vim-Befehle / Abkürzungen nehmen und sie manuell für die Verwendung in Espresso portieren könnten? Wäre das nicht das Beste aus beiden Welten?


Das Ziel

Sie werden das Beste aus diesem Tutorial herausholen, wenn Sie mit Vim und seiner Syntax einigermaßen vertraut sind.

Lassen Sie uns ein paar Dinge klarstellen. Mit Vim arbeiten heißt, mit einer Sprache zu arbeiten; Deshalb ist es so mächtig. Möchten Sie die nächsten vier Wörter löschen? Einfach, Typ c4w (vier Wörter ändern). Was ist mit den nächsten zwei Wörtern? Nun, wir kennen die Syntax: c2w. Hmm… was ist, wenn ich die nächsten drei Zeilen von der Cursorposition löschen muss? Wieder müssen wir uns keinen separaten Tastaturbefehl merken. Wir verwenden stattdessen die Sprache: 3dd (lösche die nächsten drei Zeilen).

Unser Ziel ist es, einen Großteil dieser Funktionalität auf den beliebten Editor Espresso for Mac zu übertragen. Der Grund, warum dies spezifisch für Espresso ist, besteht darin, dass wir Makros verwenden, um eine Handvoll Aufgaben für jeden Befehl zu simulieren. Die spezifischen Aufgaben / Tastaturanschläge variieren von Editor zu Editor.

Ich hoffe, dass die Mitglieder der Community beginnen, ihre eigenen zu schaffen Häfen für ihre Lieblingsherausgeber. Zu diesem Zeitpunkt können wir ein Repository auf Github entwickeln.

Wir können sicherlich nicht die gesamte Sprache und ihre Modi auf Espresso übertragen. das ist nicht möglich. Wir können jedoch viele der gängigeren Befehle mit Makros nachahmen.


Full Screencast



Warum die Mühe?

Ich denke, die Antwort auf diese Frage hängt ganz von… Sie. Als ich im September meine 4-wöchige Vim-Studie begann, verliebte ich mich schnell in die Modi und die Sprache. Jeder Editor hat jedoch seine Vor- und Nachteile. In meinem Fall, obwohl ich Vim immer noch jeden Tag liebe und benutze, mag ich nicht wie:

  • Selbst mit Plugins wie NerdTREE ist es immer noch schwierig, mit großen Projekten und Ordnerstrukturen zu arbeiten.
  • Das Arbeiten mit Dateien über FTP war schwieriger als mit Espresso.
  • Es gibt keinen Zweifel, dass Vim nicht so hübsch sein kann wie eine native Cocoa-App.
  • Espresso hat einen Kick-Butt Live Vorschau Funktion, die auf einer neuen Registerkarte aktiviert werden kann, einfach durch Eingabe Befehl + Wahltaste + P. Außerdem wird dieses Fenster während der Eingabe in Echtzeit aktualisiert.
  • Ich bemühte mich, geeignete Hilfsprogramme für Vim zu finden.

Vor kurzem, als ich mit Tastaturmakros herumspielte, fragte ich mich, ob es eine Möglichkeit gibt, diese Funktionalität zu portieren. Vielleicht lieben Sie die Idee. Vielleicht wirst du es hassen.


notwendige Werkzeuge

Während Vim zu 100% kostenlos ist (das ist Teil seiner Größe), ist es nicht bei Espresso. Des Weiteren werden Tastaturmakros mit einem Programm namens Keyboard Maestro erstellt. Auch das ist nicht frei. Ich bin mir sicher, dass es im Web einige Open-Source-Programme zur Makroerstellung gibt. Dies ist jedoch das Beste, das ich finden konnte. Es ist die $ 35 wert.

Um mitzumachen, brauchst du:

  • Ein Mac
  • Eine Kopie des Espresso-Code-Editors von MacRabbit. Sie können auch hier einen beliebigen Editor verwenden. Die Makros unterscheiden sich jedoch geringfügig. Folgen Sie diesem Tut, und erstellen Sie dann die Makros Ihres eigenen Editors. (Dann lass es mich wissen!)
  • Eine Kopie von Keyboard Maestro. Wenn Sie es noch nie verwendet haben, können Sie eine voll funktionsfähige Testversion von deren Website herunterladen. MacAppStorm hat einen großartigen Artikel über KeyBoard Maestro, wenn Sie eine Grundierung benötigen.

Dein erstes Makro

Beginnen wir mit einem einfachen Makro. Verwendung von Vim in normal Modus können wir tippen Ciw (inneres Wort ändern), um das aktuelle Wort zu löschen, und weitergehen einfügen Modus.

Jetzt hat Espresso nicht Modi, Aber wie ich fand, ist das okay. Wir können diese Befehle immer noch eingeben. Sie werden zwar als normaler Text eingegeben, sobald das Makro ausgelöst wird, werden sie jedoch sehr schnell gelöscht.

Für unser erstes Makro möchten wir diese Funktionalität nachahmen. Wenn sich der Cursor auf einem Wort befindet, möchte ich schnell tippen cw das Wort ändern.

Ähm ... warum nicht einfach die Befehl + Umschalt + W Abkürzung?

Ja, das könnten wir, aber meiner Meinung nach sollten wir das nicht tun.

  • Wenn jeder einfache Befehl seinen eigenen verwirrenden Modifikator + Tastenkürzel hat, wird es schwierig, sich alle schnell zu merken.
  • Ich liebe den Sprachaspekt von Vim. Sobald Sie es gelernt haben, wird der Gedanke, mehrere Modifidertasten zu drücken, zu einem großen Schmerz.
  • Ein großer Vorteil von Vim ist, dass es sehr wichtig ist, Ihre Finger so weit wie möglich in der mittleren Reihe Ihrer Tastatur zu halten. Dadurch können Sie nicht nur schneller tippen, Sie müssen auch nicht jedes Mal Ihre Finger strecken, wenn Sie eine einfache Operation ausführen möchten.

Aufgabe 1

Beim Erstellen eines neuen Makros müssen Sie zunächst herausfinden, wie Sie die Aufgabe manuell im Code-Editor ausführen. In diesem Fall, Umschalt + Befehl + W wird das Wort auswählen. Als nächstes die löschen Schlüssel löscht natürlich das Wort. Diese beiden Befehle allein werden imitieren Ciw in Vim.

Starten Sie Keyboard Maestro

Der nächste Schritt ist das Erstellen des Makros. Starten Sie den Keyboard Maestro und erstellen Sie vor allem eine neue Gruppe speziell für Ihre Vim-Befehle.

Auf diese Weise können Sie diese Verknüpfungen so einschränken, dass sie nur auf Espresso angewendet werden und nicht beispielsweise auf Microsoft Word. Ich habe meine Gruppe angerufen, VimMimic.

Jetzt müssen wir ein neues Makro erstellen, einen Trigger einstellen und den Expander auswählen.

Wenn Sie sich fragen, warum wir Ihr vorhandenes TextExpander-Programm nicht verwenden, liegt das daran, dass solche Programme nur Text erweitern. Aber wir müssen Makros oder Aufgaben ausführen.

Aufnahme des Makros

Nach der Vorbereitung müssen wir jetzt unsere Schritte aufzeichnen. Während Keyboard Maestro Ihnen zahlreiche Ordner / Befehle zur Verfügung stellt, bietet es eine "Record" - Schaltfläche, mit der Sie alle eingegebenen Tasten, Mausbewegungen / Klicks usw. abhören und aufnehmen können.

Wenn Sie möchten, kehren Sie zu Espresso zurück und speichern Sie die Tasten / Befehle, die Sie eingeben müssen, um das Wort zu ändern. Seien Sie jedoch klug darüber. Zum Beispiel sollte Ihr Makro etwas auswählen sheldon.couper in seiner Gänze? Oder soll nur das Wort bis (oder nach) dem Punkt ausgewählt werden? In Espresso, Befehl + Umschalt + W wird das letztere durchführen. Entscheide dich selbst für diesen. Ich denke, ich mache das erstere und wähle alles aus.

In diesem Fall muss ich mit dem Makro klüger umgehen. Nachdem ich ein bisschen herumgespielt hatte, kam ich dazu.

Wenn Sie möchten, erstellen Sie ein zweites Makro, Ciw (inneres Wort ändern), wird auch nur vor oder nach dem Zeitraum ausgewählt.

Ausprobieren

Sobald Sie Ihr Makro abgeschlossen haben, probieren Sie es aus! Kehren Sie zu Espresso zurück und tippen Sie, sobald sich der Cursor über einem Wort befindet cw. Dies löst dann das Makro aus, in dem alle zuvor aufgezeichneten Aktionen mit hoher Geschwindigkeit abgespielt werden.

Ich hoffe, dass es eine Möglichkeit gibt, ein Makro auszuführen, ohne die Benutzeroberfläche bis zum Ende zu aktualisieren. Aber ich weiß nicht, wie ich das jetzt machen soll.

Eine ganze Lotta-Arbeit

Wenn Sie kein Vim-Benutzer sind, würde ich erwarten, dass Sie zu sich selbst denken: "Diese ganze Arbeit, nur um ein Wort zu löschen?" Und vertrau mir, ich verstehe. Was ich Ihnen sagen kann, ist jedoch, dass, wenn Sie Vim eine Zeit lang verwendet haben, eine sprachähnliche Syntax für Sie weitaus sinnvoller ist, als sich unzählige Tastenkombinationen für Modifizierer zu merken.

Und natürlich ist dies ein sehr minimales Beispiel.


j für Down; k für Up

Das erste Mal, als ich erfuhr, dass von mir erwartet wurde, dass ich mit den Buchstaben nach oben, unten, links und rechtskjhl), Ich lachte. Wie altmodisch ist das? Sobald Sie jedoch die Schlüssel für das Muskelgedächtnis festgelegt haben, erhöht sich Ihre Geschwindigkeit. Sie müssen nicht länger Ihre rechte Hand in den unteren rechten Bereich der Tastatur ziehen, um die Abwärtspfeiltaste zu drücken. Nein - Ihre Hände bleiben in Ruhestellung, da diese Tasten direkt in der zweiten Reihe liegen.

Vim verwendet Moduss, um zwischen Befehlen und dem Einfügen von Text zu wechseln. Aber wie oben erwähnt, hat Espresso diese nicht. Also benutzen wir die Feststelltaste Schlüssel, um als unser zu dienen normal Modus.

Umleiten der Feststelltaste

Fragen Sie sich: "Wie oft benutze ich den Feststelltaste Schlüssel? "Wenn Sie wie ich sind, lautet die Antwort:" Fast nie. "In diesem Sinne sollten Sie etwas nutzen und seine Funktion umleiten. Auf einem Mac ist dies einfach.

Gehe zu Systemeinstellungen -> Tastatur -> Zusatztasten, und ändern Sie die Feststelltaste zur Route führen Steuerung Schlüssel, bei dem ich beim Tippen immer Probleme habe (zumindest auf meinem Laptop).

Nun, wann immer Sie drücken Feststelltaste, das Steuerung Schlüssel wird ausgelöst.


Erstellen Sie ein neues Makro

Dieses ist lächerlich einfach, aber es funktioniert. Nun, wenn Sie tippen Feststelltaste + J, Der Abwärtspfeil wird ausgelöst. Es ist wichtig zu wissen, dass Sie nicht gezwungen sind, dies zu verwenden, wenn Sie dies nicht möchten. Sie können die Abwärtspfeiltaste weiterhin drücken. Aber für diejenigen, die sich wohler fühlen, wenn sie ihre Hände in Ruhestellung halten, wird dies bevorzugt.

Wiederholen Sie dies für jede Richtung

Der nächste Schritt besteht darin, den Zyklus nach oben, links und rechts zu wiederholen - mit derselben Methode.


Nächstes ändern '

Vim hat einen schönen Befehl, ci ' Dadurch können Sie den Inhalt der nächsten Zeichenfolge leeren, in einfache Anführungszeichen eingeschlossen. Es ist erstaunlich hilfreich und kann Ihre Kodierung wirklich beschleunigen.

Versuchen wir, in Espresso ein Makro zu erstellen. Dies wird komplizierter, da wir mit dem Suchwerkzeug in Espresso nach dem nächsten Vorkommen eines einzelnen Zitats suchen müssen. Die Lösung ist also nicht perfekt, aber die Arbeit wird teilweise erledigt.

Probieren Sie es selbst aus. Geben Sie an einer beliebigen Stelle in Ihrem Dokument ein cn '. Zumindest für den Moment funktioniert es leider nur für einzelne Wörter, die in Anführungszeichen gesetzt sind.


Bis zum Zeilenende ändern

In Vim, wenn Sie eine Hauptstadt eingeben C, Im normalen Modus wird der gesamte Text in einer Zeile gelöscht nach dem die Position des Cursors Das ist sehr hilfreich. Das gleiche können wir mit einem einfachen Makro in Espresso machen. jedoch, Umschalttaste + C funktioniert nicht, weil Espresso nicht hat Modi. Lass es uns tun Feststelltaste + C stattdessen. Denken Sie daran, dass Caps jetzt auf die Steuerung Schlüssel!


Umgebungsetikett löschen

In Vim kann ich mit dem Surround-Plugin tippen dst (Löschen des umgebenden Tags), um ein Wrapping-Tag zu löschen. Ich benutze es oft. Hmm - das wird in Espresso etwas schwieriger, aber es kann gemacht werden. Hier ist was ich gefunden habe; Probieren Sie es auf Ihrem Rechner aus.

Es ist etwas komplizierter, aber es funktioniert!

Wenn es so aussieht, als könnten einige dieser Aktionen entfernt werden, sind sie da, weil ich ungewöhnliche Situationen gefunden habe, in denen sie gebraucht wurden. Besser sicher zu sein.


Ändern Sie das umgebende Tag

Genauso nützlich wie das Löschen des umgebenden Tags ist Ändern der Tag-Name.

Es gibt eine Besonderheit über diese bestimmte Methode. Da Espresso nicht modusbasiert ist, bringt Sie dieser Befehl beim Ändern des Tags bis zu dem Punkt, an dem Sie den Wert des Tags ändern können. Sobald Sie das getan haben, drücken Sie einfach Recht, und fügen Sie den ursprünglichen Text ein (der vom Makro kopiert wurde). Sie werden sehen, was ich meine, wenn Sie es ausprobieren. Lassen Sie mich wissen, ob Espresso einen Befehl zum Ändern des Tag-Namens enthält.


Fazit

Okay, das sollte dich anfangen. Wenn Sie ein Premium-Mitglied sind, lesen Sie bitte den Videoteil dieses Tutorials, um eine Einzeldemonstration zu erhalten. Ich habe bei Github ein Repository erstellt, das Dutzende von Befehlen enthält, die Sie nach Belieben verwenden und verbessern können.

Dinge, vor denen man vorsichtig sein sollte

  • Wählen Sie keine Verknüpfungen, die Sie normalerweise eingeben würden. Zum Beispiel mit dd Wenn Sie eine Zeile löschen, wird die Sache bei jeder Eingabe fehlerhaft "Scherz."
  • Achten Sie darauf, integrierte Befehle zu überschreiben. Das ist immer schwer; Es kann einige Versuche erforderlich sein, um die am meisten störenden Verknüpfungen zu finden.

Also was denkst du? Magst du die Idee? Ich bin neugierig, obwohl ich in das letztere Lager passt.

Die Gruppe der Keyboard-Maestro-Makros wird ständig aktualisiert. Die aktuellste Version können Sie hier herunterladen: http://github.com/JeffreyWay/VimMimic-for-Espresso

Tutorial-Links:

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