Ik weet zeker dat iedereen het erover eens kan zijn dat de kracht en controle van een programma als Vim ongelofelijk is. Het is begrijpelijk dat velen zich niet op hun gemak voelen met de verschillende modi, en de opdrachtregel het gevoel hebben. Het is moeilijk om visueel te concurreren met een prachtige gebruikersinterface, zoals Espresso. Maar wat als we enkele van de meer populaire Vim-commando's / snelkoppelingen zouden kunnen gebruiken en ze handmatig zouden kunnen overdragen voor gebruik in Espresso? Zou dat niet het beste van beide werelden zijn?
U haalt het meeste uit deze zelfstudie als u een bescheiden vertrouwdheid met Vim en de bijbehorende syntaxis hebt.
Laten we meteen een paar dingen rechtzetten. Werken met Vim is werken met een taal; dit is specifiek waarom het zo krachtig is. Wilt u de volgende vier woorden verwijderen? Eenvoudig, type c4w
(verander vier woorden). Hoe zit het met de volgende twee woorden? Nou, we kennen de syntaxis: C2W
. Hmm ... wat als ik de volgende drie regels van de positie van de cursor moet verwijderen? Nogmaals, we hoeven geen apart toetsenbordcommando te onthouden; wij gebruiken in plaats daarvan de taal: 3DD
(verwijder de volgende drie regels).
Ons doel is om zoveel mogelijk van deze functionaliteit over te dragen aan de populaire editor, Espresso voor Mac. De reden waarom dit Espresso specifiek is, is omdat we macro's gaan gebruiken om een handvol taken na te bootsen voor elke opdracht. De specifieke taken / toetsenbordstreken variëren van editor tot editor.
Ik hoop dat leden van de community een eigen community gaan maken havens voor hun favoriete editors. Op dat moment kunnen we een repository ontwikkelen op Github.
We kunnen de volledige taal en de modi zeker niet overdragen aan Espresso; dat is onmogelijk. Maar we kunnen veel van de meer populaire opdrachten met macro's nabootsen.
Ik veronderstel dat het antwoord op deze vraag volledig afhangt van ... u. Toen ik in september met mijn 4 Weeks of Vim-proef begon, werd ik al snel verliefd op de modi en de taal. Elke editor heeft echter zijn voor- en nadelen. In mijn geval, hoewel ik nog steeds elke dag van Vim houd en gebruik, vind ik het niet leuk hoe:
Command + Option + P
. Verder wordt dit venster in realtime bijgewerkt terwijl u typt.Onlangs, terwijl ik aan het spelen was met toetsenbordmacro's, vroeg ik me af of er een manier was om deze functionaliteit te porten. Misschien hou je van het idee; misschien haat je het.
Terwijl Vim 100% gratis is (dat is een deel van zijn grootheid), is Espresso dat niet. Verder gaan we toetsenbordmacro's maken met een programma, Keyboard Maestro genaamd. Dit is ook niet gratis. Ik ben er zeker van dat er op internet open source macro-creatieprogramma's beschikbaar zijn; dit is echter de beste die ik heb kunnen vinden. Het is de $ 35 waard.
Om mee te gaan, heb je nodig:
Laten we beginnen met een eenvoudige macro. Vim gebruiken in normaal
modus kunnen we typen CIW
(verander het innerlijke woord) om het huidige woord te verwijderen en naar binnen te gaan invoegen
mode.
Nu heeft Espresso niet modes
, maar, zoals ik ontdekte, dat is oke. We kunnen deze opdrachten nog steeds typen; terwijl ze als gewone tekst worden ingevoerd, worden ze zodra ze worden geactiveerd, supersnel verwijderd.
Dus voor onze eerste macro willen we deze functionaliteit nabootsen. Wanneer de cursor op de top van een woord staat, wil ik snel typen cw
om het woord te veranderen.
Umm ... waarom niet gewoon de
Command + Shift + W
kortere weg?
Ja, dat zouden we kunnen doen, maar naar mijn mening zouden we dat niet moeten doen.
Bij het maken van een nieuwe macro is de eerste stap om uit te zoeken hoe de taak handmatig moet worden uitgevoerd in de code-editor. In dit geval, Shift + Command + W
zal het woord selecteren. Vervolgens de verwijderen
sleutel, natuurlijk, zal het woord verwijderen. Die twee commando's alleen zullen nabootsen CIW
in Vim.
De volgende stap is om de macro te maken. Start Keyboard Maestro op en creëer, vóór alles, een nieuwe groep speciaal voor je Vim-commando's.
Op deze manier kunt u deze snelkoppelingen beperken zodat ze alleen op Espresso worden toegepast, en niet bijvoorbeeld op Microsoft Word. Ik heb mijn groep gebeld, VimMimic.
Nu moeten we een nieuwe macro maken, een trigger instellen en de uitbreiding kiezen.
Als je je afvraagt waarom we je bestaande TextExpander-programma niet gebruiken, is dat omdat programma's alleen tekst uitbreiden. Maar we moeten macro's of taken uitvoeren.
Met de voorbereiding uit de weg, nu moeten we onze stappen vastleggen. Hoewel Keyboard Maestro beschikt over een groot aantal mappen / commando's, is het geweldig dat het een "Record" -knop biedt, waar het alle toetsen die u typt, muisbewegingen / klikken, enz. Zal beluisteren en opnemen..
Als dat nodig is, gaat u terug naar Espresso en onthoudt u de toetsen / opdrachten die u moet typen om het woord te wijzigen. Wees hier echter slim over. Moet bijvoorbeeld uw macro iets selecteren sheldon.couper
in zijn geheel? Of wilt u dat het alleen het woord selecteert, tot (of na) de periode? In Espresso, Command + Shift + W
zal de laatste uitvoeren. Beslis hier zelf over. Ik denk dat ik het eerste zal doen en alles zal selecteren.
In dat geval moet ik slimmer zijn over de macro. Na een beetje spelen in de buurt, heb ik dit bedacht.
Maak desgewenst een tweede macro, CIW
(verander het innerlijke woord), dat alleen voor of na de periode ook zal selecteren.
Zodra je je macro hebt voltooid, probeer het dan! Keer terug naar Espresso en typ, als de cursor over een woord staat cw
. Dit zal dan de macro activeren, waarin al uw eerder opgenomen acties op hoge snelheid worden afgespeeld.
Ik hoop dat er een manier is om een macro uit te voeren zonder de gebruikersinterface tot het einde bij te werken. Maar ik weet op dit moment niet hoe dit moet.
Als je geen Vim-gebruiker bent, zou ik van je verwachten dat je bij jezelf denkt: "Alles werkt om een woord te verwijderen?" En geloof me, ik begrijp het. Wat ik echter wel kan zeggen, is dat, als je Vim een tijdje hebt gebruikt, een taal-achtige syntaxis veel logischer voor je is dan het onthouden van ontelbare sneltoetsen voor modificatietoetsen.
En toegegeven, dit is een zeer minimaal voorbeeld.
j
voor Down; k
voor UpDe eerste keer dat ik hoorde dat van mij werd verwacht dat ik de letters zou gebruiken om omhoog, omlaag, naar links en naar rechts te gaan (kjhl
), Ik lachte. Hoe ouderwets is dat !? Maar als je eenmaal de sleutels van het spiergeheugen hebt vastgelegd, wordt je snelheid groter. U hoeft niet langer uw rechterhand naar het gedeelte rechtsonder van het toetsenbord te slepen om de pijl-omlaag te raken. Nee, je handen blijven in rustpositie, omdat die toetsen direct in de tweede rij liggen.
Vim gebruikt mode
s om te schakelen tussen opdrachten en tekst in te voegen. Maar zoals hierboven vermeld, heeft Espresso deze niet. Dus we gebruiken de Caps Lock
sleutel om als onze te dienen normaal
mode.
Stel jezelf de vraag: "Hoe vaak gebruik ik de Caps Lock
sleutel? "Als je bent zoals ik, is het antwoord:" Bijna nooit. "Met dat in gedachten, haal er wat gebruik van uit de weg, en herleid zijn functie. Op een Mac is dit eenvoudig.
Ga naar Systeemvoorkeuren -> Toetsenbord -> Modificatietoetsen
, en verander de Caps Lock
om naar de Controle
sleutel, die ik altijd problemen heb met richten als ik aan het typen ben (tenminste op mijn laptop).
Nu, wanneer u maar op drukt Caps Lock
, de controle
sleutel wordt geactiveerd.
Deze is lachwekkend eenvoudig, maar het werkt. Nu, wanneer u typt Caps Lock + J
, de pijl naar beneden zal worden geactiveerd. Het is belangrijk om in gedachten te houden dat je niet gedwongen wordt om dit te gebruiken, als je dat niet wilt. U kunt nog steeds op de pijl-omlaagtoets drukken. Maar voor degenen die zich prettiger voelen om hun handen in rustpositie te houden, kan dit de voorkeur hebben.
De volgende stap is om de cyclus voor omhoog, links en rechts te herhalen - met exact dezelfde methode.
'
Vim heeft een mooie opdracht, ci'
waarmee je de inhoud van de volgende reeks kunt legen, verpakt in enkele aanhalingstekens. Het is verbazingwekkend nuttig en kan je codering echt versnellen.
Laten we proberen een macro te maken om dit in Espresso te doen. Deze zal ingewikkelder zijn, omdat we de zoekfunctie in Espresso moeten gebruiken om te zoeken naar het volgende exemplaar van een enkele quote. Dus, de oplossing zal niet perfect zijn, maar hij zal de klus gedeeltelijk klaren.
Probeer het zelf uit. Overal in uw document typt u cn'
. Helaas werkt het, althans voorlopig, alleen perfect voor losse woorden in citaten.
In Vim, als je een hoofdletter typt C
, in de normale modus verwijdert het alle tekst op een regel die wordt weergegeven na de positie van de cursor. Het is erg nuttig. We kunnen hetzelfde doen in Espresso met een eenvoudige macro. Echter, Shift + C
zal niet werken, omdat Espresso niet heeft modes
. Laten we doen Caps Lock + C
in plaats daarvan. Vergeet niet dat caps nu naar de Controle
sleutel!
In Vim kan ik met de Surround-plugin typen dst
(verwijder de omringende tag) om een wrapping-tag te verwijderen. Ik gebruik het vaak. Hmm - dit wordt een lastiger exemplaar in Espresso, maar het kan worden gedaan. Hier is wat ik bedacht; probeer het uit op uw machine.
Het is een beetje ingewikkelder, maar het werkt!
Merk op dat, als het lijkt alsof een paar van die acties kunnen worden verwijderd, ze daar zijn omdat ik vreemde situaties vond waarin ze nodig waren. Het is beter om veilig te zijn.
Even zo handig als het verwijderen van de omringende tag, is veranderen de tagnaam.
Er is één krasgeluid over deze specifieke methode. Omdat Espresso niet op mode is gebaseerd, zal deze opdracht u naar het punt brengen waar u de waarde van de tag kunt wijzigen wanneer u de tag wijzigt. Zodra u dit doet, drukt u gewoon op Rechts
, en plak in de originele tekst (die werd gekopieerd door de macro). Je zult zien wat ik bedoel als je het uitprobeert. Laat het me weten als Espresso een ingebouwd change-tag-name commando heeft.
Oké, daar moet je mee beginnen. Als je een Premium-lid bent, raadpleeg dan het videogedeelte van deze tutorial voor een meer een-op-een-demonstratie. Ik heb een repository gemaakt bij Github, die tientallen opdrachten bevat die je gratis kunt gebruiken (en verbeteren) naar wens.
dd
om een regel te verwijderen, zal je elke keer dat je typt dingen verpesten "Een grapje." Wat denk je ervan? Vind je het idee leuk? Ik ben nieuwsgierig, hoewel ik in het laatste kamp paste.
De macro-groep Keyboard Maestro wordt voortdurend bijgewerkt. Als u de meest recente versie wilt downloaden, kunt u deze hier downloaden: http://github.com/JeffreyWay/VimMimic-for-Espresso
Tutorial koppelingen:
Espresso: http://macrabbit.com/espresso/
Keyboard Maestro: http://www.keyboardmaestro.com