Jag är säker på att alla kan komma överens om att kraften och kontrollen som ett program som Vim ger är otroligt. Men förståeligt är många inte bekväma med de olika lägena och kommandorad känner av det. Det är svårt att konkurrera, visuellt, med ett vackert användargränssnitt, som Espresso. Men, om vi skulle kunna ta några av de mer populära Vim-kommandona / genvägarna och manuellt överföra dem till användning i Espresso? Skulle inte det vara det bästa av båda världarna?
Du får det mesta av denna handledning om du har en blygsam bekantskap med Vim och dess syntax.
Låt oss få några saker rakt, precis utanför fladdermusen. Att arbeta med Vim är att jobba med ett språk; Detta är speciellt varför det är så kraftfullt. Vill du radera de fyra följande orden? Lätt, typ c4w
(ändra fyra ord). Vad sägs om de två följande orden? Tja, vi vet syntaxen: c2w
. Hmm ... vad händer om jag måste radera de tre följande raderna från markörens position? Återigen behöver vi inte memorera ett separat tangentbordskommando; vi använder istället språket: 3DD
(ta bort de tre följande raderna).
Vårt mål är att porta så mycket av denna funktionalitet över till den populära redaktören, Espresso for Mac. Anledningen till att detta är Espresso-specifik är att vi ska använda makron för att efterlikna en handfull uppgifter för varje kommando. De specifika uppgifterna / tangentbordssträngarna varierar från redaktör till redigerare.
Det är mitt hopp att medlemmar i samhället kommer att börja skapa sina egna hamnar för sina favoritredaktörer. På den tiden kan vi utvecklare ett förråd på Github.
Vi kan verkligen inte porta hela språket och dess lägen över till espresso; det är omöjligt. Men vi kan efterlikna många av de mer populära kommandona med makron.
Jag antar att svaret på denna fråga helt beror på ... du. När jag började min 4 veckor av Vim-rättegången, tillbaka i september blev jag snabbt förälskad i lägen och språket. Men varje redaktör har sina fördelar och nackdelar. I mitt fall, även om jag fortfarande älskar och använder Vim varje dag, gillar jag inte hur:
Kommando + Alternativ + P
. Vidare uppdateras det här fönstret i realtid, när du skriver.Nyligen, när jag spelade med tangentbordsmakroer frågade jag mig själv om det fanns en port för denna funktion. Kanske kommer du att älska idén; kanske hatar du det.
Medan Vim är 100% fri (det är en del av sin storhet) är Espresso inte. Vidare ska vi skapa tangentbordsmakroer med ett program, som heter Keyboard Maestro. Det här är inte gratis. Jag är säker på att det finns några öppna källor för makroskapande program som finns tillgängliga på webben. Men det här är det bästa jag har kunnat hitta. Det är värt 35 kronor.
För att följa med, behöver du:
Låt oss börja med en enkel makro. Använda Vim in vanligt
läge kan vi skriva CIW
(ändra inre ord) för att radera det aktuella ordet och flytta till Föra in
läge.
Nu har Espresso inte lägen
, men som jag funnit är det okej. Vi kan fortfarande skriva dessa kommandon; medan de kommer att anges som vanlig text, så snart makroen triggas, kommer de att raderas super snabbt.
Så, för vårt första makro, vill vi efterlikna denna funktionalitet. När markören ligger ovanpå ett ord vill jag snabbt skriva cw
för att ändra ordet.
Umm ... varför inte bara slå på
Kommando + Skift + W
genväg?
Ja, vi kan göra det, men enligt min mening borde vi inte.
När du skapar ett nytt makro är det första steget att räkna ut hur man utför uppgiften manuellt i kodredigeraren. I detta fall, Skift + Kommando + W
kommer att välja ordet. Därefter radera
nyckeln kommer förstås att radera ordet. Dessa två kommandon ensam kommer att efterlikna CIW
i Vim.
Nästa steg är att skapa makro. Släcka Keyboard Maestro, och innan något annat, skapa en ny grupp specifikt för dina Vim-kommandon.
På så sätt kan du begränsa dessa genvägar så att de bara tillämpas på Espresso, och inte till exempel Microsoft Word. Jag har ringt till min grupp, VimMimic.
Nu måste vi skapa ett nytt makro, ange en trigger och välj expanderaren.
Om du undrar varför vi inte använder ditt befintliga TextExpander-program beror det bara på att program som utökar texten bara. Men vi måste utföra makron eller uppgifter.
Med förberedelsen ur vägen måste vi nu registrera våra steg. Medan Keyboard Maestro har många mappar / kommandon tillgängliga för dig, är det fantastiskt att det erbjuder en "Record" -knapp, där den kommer att lyssna och spela in några nycklar du skriver, musrörelser / klick osv..
Om du behöver, gå tillbaka till Espresso och memorera de nycklar / kommandon du behöver skriva för att ändra ordet. Men var smart om det här. Till exempel, om ditt makro välj något liknande sheldon.couper
i sin helhet? Eller vill du att den bara ska välja ordet, upp till (eller efter) perioden? I Espresso, Kommando + Skift + W
kommer att utföra den senare. Bestäm själv på den här. Jag tror att jag ska göra det förra och välja allt.
I så fall måste jag vara smartare om makroet. Efter lite leksak runt, så är detta vad jag kom fram till.
Om du vill, skapa ett andra makro, CIW
(ändra inre ord), som bara kommer att välja före eller efter perioden.
När du har slutfört ditt makro, prova det! Återgå till Espresso, och, när markören är över ett ord, skriv cw
. Detta kommer då att utlösa makroet, där alla dina tidigare inspelade åtgärder kommer att spelas upp, i hög hastighet.
Jag hoppas att det finns ett sätt att utföra ett makro utan att uppdatera användargränssnittet till slutet. Men jag är inte medveten om hur man gör det just nu.
Om du inte är en Vim-användare, förväntar jag mig att du tänker på dig själv, "Allt detta fungerar bara för att radera ett ord?" Och lita på mig, jag förstår. Vad jag kan säga är dock att när du har använt Vim ett tag, så är en språkliknande syntax mycket mer meningsfull för dig än att memorera otaliga genvägar för modifieringsnycklar.
Och, givet, detta är ett mycket minimalt exempel.
j
för Down; k
För uppFörsta gången jag lärde mig att jag förväntades använda bokstäverna för att flytta upp, ner, vänster och höger (kjhl
), Jag skrattade. Hur gammaldags är det !? Men när du har begått nycklarna till muskelminne ökar din hastighet. Du behöver inte längre dra din högra hand till den nedre högra delen av tangentbordet för att slå ner pilknappen. Nope - dina händer förblir i viloläge, eftersom dessa nycklar ligger direkt i andra raden.
Vim använder läge
s för att växla mellan kommandon och infoga text. Men som nämnts ovan har Espresso inte dessa. Så vi använder Caps Lock
nyckeln att fungera som vår vanligt
läge.
Fråga dig själv, "Hur ofta använder jag någonsin Caps Lock
nyckel? "Om du är som jag är svaret" nästan aldrig ". Med det i åtanke, använd lite av det och omdirigera funktionen. På en Mac är det enkelt.
Gå till Systeminställningar -> Tangentbord -> Ändringsnycklar
, och ändra Caps Lock
till väg till Kontrollera
nyckeln, som jag alltid har problem med att rikta in när jag skriver (åtminstone på min bärbara dator).
Nu, helst som du trycker på Caps Lock
, de kontrollera
nyckeln kommer att utlösas.
Det här är skrattsamt enkelt, men det fungerar. Nu när du skriver Caps Lock + J
, Nedpilen kommer att utlösas. Det är viktigt att komma ihåg att du inte är tvungen att använda det här, om du inte vill. Du kan fortfarande trycka på nedåtpilknappen. Men för dem som känner sig mer bekväma att hålla händerna i viloläge kan det här vara att föredra.
Ditt nästa steg är att upprepa cykeln för upp, vänster och höger - med exakt samma metod.
'
Vim har ett bra kommando, ci'
som låter dig tömma innehållet i nästa sträng, inslagna i enkla citat. Det är otroligt användbart, och kan verkligen påskynda din kodning.
Låt oss försöka skapa ett makro för att göra detta i Espresso. Den här blir mer komplicerad, eftersom vi måste använda sökverktyget i Espresso för att söka efter nästa enskilda citat. Så lösningen blir inte perfekt, men det kommer att få jobbet delvis.
Prova själv. Vart som helst i ditt dokument, skriv cn'
. Tyvärr, åtminstone för nu, fungerar det bara perfekt för enkla ord inslagna i citat.
I Vim, om du skriver en huvudstad C
, I normalt läge raderar den all text på en rad som kommer efter markörens position. Det är mycket användbart. Vi kan göra detsamma i Espresso med ett enkelt makro. dock, Skift + C
kommer inte att fungera, eftersom Espresso inte har lägen
. Låt oss göra Caps Lock + C
istället. Kom ihåg att kepsarna nu sträcker sig till Kontrollera
nyckel-!
I Vim, med Surround-plugin kan jag skriva dst
(ta bort omgivande tagg) för att ta bort en omslagstagg. Jag använder det ofta. Hmm - det här blir en svårare i Espresso, men det kan göras. Här är vad jag kom fram till; prova det på din maskin.
Det är lite mer komplicerat, men det fungerar!
Observera att om det verkar som om några av dessa åtgärder kan tas bort, är de där för att jag hittade udda situationer där de behövdes. Bättre att vara säker.
Lika lika användbar som att ta bort den omgivande taggen är ändring taggnamnet.
Det finns en fråga om den här metoden. Eftersom Espresso inte är modebaserat, när du ändrar taggen kommer det här kommandot att ta dig fram till den punkt där du kan ändra värdet på taggen. När du gör det, tryck bara på Höger
, och klistra in i originaltexten (som kopierades av makroet). Du förstår vad jag menar när du provar det. Låt mig veta om Espresso har ett inbyggt kommandot för ändringskoden.
Okej, det borde komma igång. Om du är en Premium-medlem, var noga med att hänvisa till videodelen av denna handledning för en mer en-mot-en demonstration. Jag har skapat ett förråd på Github, som innehåller dussintals kommandon som du är fri att använda (och förbättra) hur du önskar.
dd
Att radera en rad kommer att skruva upp saker varje gång du skriver "Skojar." Så vad tycker du? Gillar du idén? Jag är nyfiken, även om jag passar in i det senare lägret.
Keyboard Maestro makro gruppen uppdateras hela tiden. För att hämta den senaste versionen, vänligen hämta den här: http://github.com/JeffreyWay/VimMimic-for-Espresso
Handledning Länkar:
Espresso: http://macrabbit.com/espresso/
Keyboard Maestro: http://www.keyboardmaestro.com