Jeg er sikker på at alle kan være enige om at kraften og kontrollen som et program som Vim gir, er utrolig. Men forståelig nok er mange ikke komfortable med de forskjellige modiene, og kommandolinje følelsen av det. Det er vanskelig å konkurrere, visuelt, med et vakkert brukergrensesnitt, som Espresso. Men hva om vi kunne ta noen av de mest populære Vim-kommandoene / snarveiene, og overfør dem manuelt til bruk i Espresso? Ville ikke det være det beste fra begge verdener?
Du får mest ut av denne opplæringen hvis du har en beskjeden kjennskap til Vim og sin syntaks.
La oss få noen ting rett, rett utenfor flaggermuset. Å arbeide med Vim er å jobbe med et språk; Dette er spesielt hvorfor det er så kraftig. Vil du slette de neste fire ordene? Enkel, type c4w
(endre fire ord). Hva med de neste to ordene? Vel, vi kjenner til syntaksen: c2w
. Hmm ... hva om jeg må slette de neste tre linjene fra markørens posisjon? Igjen, vi trenger ikke å huske en separat tastaturkommando; vi, i stedet, bruker språket: 3DD
(slett de neste tre linjene).
Vårt mål er å port så mye av denne funksjonaliteten over til den populære redaktøren, Espresso for Mac. Årsaken til at dette er Espresso-spesifikke, er at vi skal bruke makroer for å etterligne en håndfull oppgaver for hver kommando. De spesifikke oppgavene / tastaturstrømmene varierer fra editor til editor.
Det er mitt håp at medlemmer av samfunnet vil begynne å lage sine egne porter for deres favorittredaktører. På det tidspunktet kan vi utvikler et repository på Github.
Vi kan absolutt ikke porte hele språket og dets moduser over til Espresso; det er umulig. Men vi kan etterligne mange av de mer populære kommandoene med makroer.
Jeg antar at svaret på dette spørsmålet helt avhenger av ... du. Da jeg begynte min 4 uker av Vim-rettssaken, tilbake i september, ble jeg raskt forelsket i modene og språket. Men hver redaktør har sine fordeler og ulemper. I mitt tilfelle, selv om jeg fremdeles elsker og bruker Vim hver dag, liker jeg ikke hvordan:
Kommando + Alternativ + P
. Videre oppdateres dette vinduet i sanntid, mens du skriver.Nylig, da jeg spilte rundt med tastaturmakroer, spurte jeg meg selv om det var en veihytte denne funksjonaliteten. Kanskje du vil elske ideen; kanskje du hater det.
Mens Vim er 100% fri (det er en del av sin storhet), er Espresso ikke. Videre skal vi lage tastaturmakroer med et program, kalt Keyboard Maestro. Dette er også ikke gratis. Jeg er sikker på at det er noen åpen kildekode-makroopprettingsprogrammer tilgjengelig rundt på nettet. Men dette er det beste jeg har kunnet finne. Det er verdt $ 35.
Å følge med, du trenger:
La oss begynne med en enkel makro. Bruk Vim i normal
modus, kan vi skrive CIW
(endre indre ord) for å slette det gjeldende ordet, og flytt inn sett inn
modus.
Nå har Espresso ikke moduser
, men som jeg fant, er det greit. Vi kan fortsatt skrive disse kommandoene; mens de blir skrevet inn som vanlig tekst, så snart makroen utløser, blir de slettet super fort.
Så, for vår første makro, ønsker vi å etterligne denne funksjonaliteten. Når markøren er på toppen av et ord, vil jeg raskt skrive cw
å endre ordet.
Umm ... hvorfor ikke bare slå på
Kommando + Skift + W
snarvei?
Ja, vi kunne gjøre det, men etter min mening burde vi ikke.
Når du oppretter en ny makro, er det første trinnet å finne ut hvordan du utfører oppgaven manuelt i kodeditoren. I dette tilfellet, Skift + Kommando + W
vil velge ordet. Deretter slette
nøkkel, selvfølgelig, vil slette ordet. Disse to kommandoer alene vil etterligne CIW
i Vim.
Det neste trinnet er å lage makroen. Slå opp Keyboard Maestro, og før noe annet, opprett en ny gruppe spesielt for dine Vim-kommandoer.
På denne måten kan du begrense disse snarveiene til kun å brukes på Espresso, og ikke for eksempel Microsoft Word. Jeg har ringt til min gruppe, VimMimic.
Nå må vi opprette en ny makro, sette en utløser, og velg ekspandereren.
Hvis du lurer på hvorfor vi ikke bruker ditt eksisterende TextExpander-program, er det fordi programmer som det bare utvider tekst. Men vi må utføre makroer eller oppgaver.
Med forberedelsen ut av veien, må vi nå registrere våre skritt. Mens Keyboard Maestro har mange mapper / kommandoer tilgjengelig for deg, er det utrolig at den tilbyr en "Record" -knapp, hvor den vil høre og ta opp noen av tastene du skriver, musebevegelser / klikk osv..
Hvis du trenger, gå tilbake til Espresso, og husk nøklene / kommandoene du må skrive for å kunne endre ordet. Vær imidlertid snill om dette. For eksempel, bør makroen din velge noe som sheldon.couper
i sin helhet? Eller vil du at den bare skal velge ordet, opp til (eller etter) perioden? I Espresso, Kommando + Skift + W
vil utføre sistnevnte. Bestem deg selv på denne. Jeg tror jeg skal gjøre det første og velge alt.
I så fall må jeg være smartere om makroen. Etter litt toying rundt, dette er hva jeg kom opp med.
Hvis du vil, lag en annen makro, CIW
(endre indre ord), som bare vil velge før eller etter perioden.
Når du har fullført makroen din, kan du prøve den! Gå tilbake til Espresso, og når markøren er over et ord, skriv inn cw
. Dette vil da utløse makroen, der alle dine tidligere innspilte handlinger vil bli spilt ut, i høy hastighet.
Jeg håper at det er en måte å utføre en makro uten å oppdatere brukergrensesnittet helt til slutten. Men jeg er ikke klar over hvordan jeg gjør det nå.
Hvis du ikke er en Vim-bruker, forventer jeg at du skal tenke på deg selv, "Alt dette fungerer bare for å slette et ord?" Og stol på meg, jeg forstår. Det jeg kan fortelle deg, er at når du har brukt Vim for en stund, er et språklignende syntax langt mer fornuftig for deg enn å huske utallige snarveier for modifiseringsnøkkel.
Og gitt, dette er et svært lite eksempel.
j
for ned; k
for oppFørste gang jeg lærte at jeg var forventet å bruke bokstavene til å flytte opp, ned, venstre og høyre (kjhl
), Jeg lo. Hvor gammeldags er det !? Men når du har begått nøklene til muskelminne, øker hastigheten din. Du trenger ikke lenger å dra høyre hånd til nederste høyre del av tastaturet for å trykke på nedpilen. Nope - hendene dine står i hvilestilling, da disse nøklene ligger direkte i andre rad.
Vim bruker modus
s for å bytte mellom kommandoer og sette inn tekst. Men som nevnt ovenfor har Espresso ikke disse. Så, vi skal bruke Caps Lock
nøkkel til å tjene som vår normal
modus.
Spør deg selv, "Hvor ofte bruker jeg aldri caps lås
nøkkel? "Hvis du er som meg, er svaret" nesten aldri ". Med det i tankene, få litt bruk ut av det, og omdøp funksjonen. På en Mac er dette enkelt.
Gå til Systemvalg -> Tastatur -> Modifikatortaster
, og endre Caps Lock
å rute til Styre
nøkkel, som jeg alltid har problemer med å målrette når jeg skriver (minst på min laptop).
Nå, når som helst du trykker på caps lås
, de styre
nøkkelen vil bli utløst.
Denne er latterlig enkel, men det fungerer. Nå, når du skriver inn Caps Lock + J
, pil ned vil bli utløst. Det er viktig å huske på at du ikke er tvunget til å bruke dette, hvis du ikke vil. Du kan fortsatt trykke på pil ned-tasten. Men for de som føler seg mer komfortable holder hendene i hvilestilling, kan dette bli foretrukket.
Ditt neste skritt er å gjenta syklusen for opp, venstre og høyre - ved hjelp av nøyaktig samme metode.
'
Vim har en fin kommando, ci'
som lar deg tømme innholdet i neste streng, pakket inn i enkelt anførselstegn. Det er utrolig nyttig, og kan virkelig øke hastigheten på kodingen.
La oss prøve å lage en makro for å gjøre dette i Espresso. Dette vil bli mer komplisert, fordi vi må bruke søkeverktøyet i Espresso for å søke etter det neste forekomsten av et enkelt tilbud. Så løsningen vil ikke være perfekt, men det vil få jobben gjort delvis.
Prøv det selv. Hvor som helst i dokumentet ditt, skriv inn cn'
. Dessverre, i hvert fall for nå, fungerer det bare perfekt for enkle ord innpakket i sitater.
I Vim, hvis du skriver inn en hovedstad C
, I normal modus vil den slette all teksten på en linje som kommer etter markørens posisjon. Det er veldig hjelpsomt. Vi kan gjøre det samme i Espresso med en enkel makro. derimot, Skift + C
vil ikke fungere, fordi Espresso ikke har moduser
. La oss gjøre Caps Lock + C
i stedet. Husk at kappene nå ruter til Styre
nøkkel!
I Vim, med Surround-pluginet, kan jeg skrive dst
(slett rundt tagg) for å slette en pakketikett. Jeg bruker det ofte. Hmm - dette vil være en vanskeligere i Espresso, men det kan gjøres. Her er hva jeg kom opp med; prøv det på maskinen din.
Det er litt mer komplisert, men det fungerer!
Vær oppmerksom på at hvis det virker som noen av disse handlingene kan fjernes, er de der fordi jeg fant ulike situasjoner der de trengte. Bedre å være trygg.
Like nyttig som å slette den omkringliggende taggen, er endring taggenavnet.
Det er en quirk om denne metoden. Fordi Espresso ikke er modusbasert, når du endrer taggen, vil denne kommandoen ta deg opp til punktet der du kan endre verdien av taggen. Når du gjør det, trykker du bare på Ikke sant
, og lim inn i den opprinnelige teksten (som ble kopiert av makroen). Du ser hva jeg mener når du prøver det ut. Gi meg beskjed hvis Espresso har en innebygd endring-tag-navn kommando.
Ok, det burde komme i gang. Hvis du er et Premium-medlem, må du se videodelen av denne opplæringen for en mer en-mot-en-demonstrasjon. Jeg har opprettet et repository på Github, som inneholder dusinvis av kommandoer som du er fri til å bruke (og forbedre) hvordan du ønsker.
dd
Å slette en linje vil skru opp ting hver gang du skriver "tuller." Så hva tror du? Liker du ideen? Jeg er nysgjerrig, selv om jeg passer inn i sistnevnte leir.
Tastatur Maestro makro-gruppen oppdateres kontinuerlig. For å laste ned den mest oppdaterte versjonen, vennligst hent den her: http://github.com/JeffreyWay/VimMimic-for-Espresso
Tutorial Links:
Espresso: http://macrabbit.com/espresso/
Tastatur Maestro: http://www.keyboardmaestro.com