Sono sicuro che tutti possono essere d'accordo sul fatto che il potere e il controllo offerti da un programma come Vim siano incredibili. Tuttavia, comprensibilmente, molti non sono a proprio agio con le varie modalità e riga di comando sentirlo. È difficile competere, visivamente parlando, con una bella interfaccia utente, come Espresso. Ma, se potessimo prendere alcuni dei più popolari comandi / scorciatoie Vim e portarli manualmente per l'uso in Espresso? Non sarebbe il meglio di entrambi i mondi?
Otterrai il massimo da questo tutorial se hai una modesta familiarità con Vim e la sua sintassi.
Prendiamo alcune cose, subito. Lavorare con Vim è lavorare con una lingua; questo è specificamente il motivo per cui è così potente. Vuoi cancellare le prossime quattro parole? Facile, tipo C4W
(cambia quattro parole). E le prossime due parole? Bene conosciamo la sintassi: C2W
. Hmm ... e se dovessi cancellare le tre linee successive dalla posizione del cursore? Ancora una volta, non dobbiamo memorizzare un comando separato da tastiera; noi, invece, usiamo la lingua: 3DD
(cancella le tre righe successive).
Il nostro obiettivo è di trasferire gran parte di questa funzionalità all'editor popolare Espresso per Mac. Il motivo per cui questo è Espresso specifico è perché useremo le macro per imitare una manciata di compiti per ogni comando. Le attività specifiche / i tratti della tastiera variano da editor a editor.
Spero che i membri della comunità inizieranno a crearne di propri porti per i loro editor preferiti. A quel punto, possiamo sviluppare un repository su Github.
Non possiamo certamente trasferire l'intera lingua e le sue modalità fino all'espresso; è impossibile. Ma possiamo imitare molti dei comandi più popolari con le macro.
Suppongo che la risposta a questa domanda dipenda interamente da ... tu. Quando ho iniziato il mio processo di 4 settimane di Vim, a settembre, mi sono subito innamorato delle modalità e del linguaggio. Tuttavia, ogni editor ha i suoi vantaggi e svantaggi. Nel mio caso, anche se continuo ad amare e ad usare Vim ogni giorno, non mi piace come:
Comando + Opzione + P
. Inoltre, questa finestra si aggiorna in tempo reale mentre digiti.Recentemente, mentre giocavo con i macro della tastiera, mi sono chiesto se c'era un modo per portare questa funzionalità. Forse ti piacerà l'idea; forse lo odierai.
Mentre Vim è al 100% gratuito (fa parte della sua grandezza), Espresso non lo è. Inoltre, creeremo macro di tastiera con un programma, chiamato Keyboard Maestro. Anche questo non è gratuito. Sono sicuro che ci sono alcuni programmi di creazione di macro open source disponibili sul web; tuttavia, questo è il migliore che sono stato in grado di trovare. Vale la pena $ 35.
Per seguire, avrai bisogno di:
Iniziamo con una semplice macro. Utilizzando Vim in normale
modalità, possiamo digitare CIW
(cambia la parola interna) per eliminare la parola corrente e spostarsi in inserire
modalità.
Ora, l'Espresso non ha modalità
, ma, come ho scoperto, va bene. Possiamo ancora digitare questi comandi; mentre verranno inseriti come testo normale, non appena la macro si innesca, verranno eliminati super velocemente.
Quindi, per la nostra prima macro, vogliamo imitare questa funzionalità. Quando il cursore si trova sopra una parola, voglio digitare rapidamente cw
cambiare la parola.
Umm ... perché non colpire il
Comando + Maiusc + W
scorciatoia?
Sì, potremmo farlo, ma, a mio parere, non dovremmo.
Quando si crea una nuova macro, il primo passo è capire come eseguire manualmente l'attività nell'editor di codice. In questo caso, Maiusc + Comando + W
selezionerà la parola. Quindi, il Elimina
la chiave, ovviamente, cancellerà la parola. Quei due comandi da soli imiteranno CIW
in Vim.
Il prossimo passo è creare la macro. Accendi la tastiera Maestro e, prima di ogni altra cosa, crea un nuovo gruppo specifico per i tuoi comandi Vim.
In questo modo, è possibile limitare queste scorciatoie per essere applicate solo a Espresso e non, ad esempio, a Microsoft Word. Ho chiamato il mio gruppo, VimMimic.
Ora, dobbiamo creare una nuova macro, impostare un trigger e scegliere l'expander.
Se ti stai chiedendo perché non stiamo usando il tuo programma TextExpander esistente, è perché programmi come quelli espandono solo il testo. Ma, abbiamo bisogno di eseguire macro o attività.
Con la preparazione fuori mano, ora abbiamo bisogno di registrare i nostri passi. Mentre Keyboard Maestro ha numerose cartelle / comandi disponibili, ciò che è fantastico è che offre un pulsante "Registra", dove ascolterà e registrerà qualsiasi tasto digitato, movimenti / clic del mouse, ecc..
Se è necessario, tornare a Espresso e memorizzare i tasti / i comandi che è necessario digitare per cambiare la parola. Tuttavia, sii intelligente con questo. Ad esempio, se la tua macro seleziona qualcosa di simile sheldon.couper
nella sua interezza? O vuoi che selezioni solo la parola, fino a (o dopo) il periodo? In Espresso, Comando + Maiusc + W
eseguirà il secondo. Decidi tu stesso su questo. Penso, farò il primo e selezionerò tutto.
In tal caso, ho bisogno di essere più intelligente riguardo alla macro. Dopo un po 'di giocherellando, questo è quello che mi è venuto in mente.
Se vuoi, crea una seconda macro, CIW
(cambia la parola interna), che selezionerà solo prima o dopo il periodo.
Una volta completata la macro, provalo! Ritorna a Espresso e, una volta che il cursore si trova su una parola, digita cw
. Questo attiverà quindi la macro, in cui tutte le azioni registrate in precedenza verranno riprodotte, in alta velocità.
Spero che ci sia un modo per eseguire una macro senza aggiornare l'interfaccia utente fino alla fine. Ma, non sono a conoscenza di come farlo in questo momento.
Se non sei un utente Vim, mi aspetterei che pensassi a te stesso, "Tutto ciò funziona solo per eliminare una parola?" E, credimi, capisco. Quello che posso dirti, però, è che, una volta che hai usato Vim per un po ', una sintassi simile alla lingua ha molto più senso per te, che memorizzare innumerevoli scorciatoie di tasti modificatori.
E, garantito, questo è un esempio molto minimale.
j
per Down; K
FinoLa prima volta che ho imparato che dovevo usare le lettere per spostarmi su, giù, sinistra e destra (kjhl
), Ho riso. Come è vecchio stile !? Ma, una volta che hai impegnato le chiavi della memoria muscolare, la tua velocità aumenta. Non è più necessario trascinare la mano destra nella sezione in basso a destra della tastiera per premere il tasto freccia giù. No - le tue mani rimangono in posizione di riposo, poiché quelle chiavi si trovano direttamente nella seconda fila.
Vim usa modalità
s per passare tra i comandi e l'inserimento di testo. Ma, come accennato in precedenza, Espresso non ha questi. Quindi, useremo il Blocco maiuscole
chiave per servire come nostro normale
modalità.
Chiediti: "Quanto spesso uso mai il blocco maiuscole
chiave? "Se sei come me, la risposta è" Quasi mai. "Con questo in mente, usane un po 'e reindirizza la sua funzione. Su un Mac, questo è semplice.
Vai a Preferenze di sistema -> Tastiera -> Tasti modificatori
, e cambia il Blocco maiuscole
per dirigersi verso Controllo
chiave, che ho sempre problemi di targeting quando sto digitando (almeno sul mio portatile).
Ora, ogni volta che premi blocco maiuscole
, il controllo
il tasto verrà attivato.
Questo è ridicolmente semplice, ma funziona. Ora, quando digiti Caps Lock + J
, la freccia giù verrà attivata. È importante tenere presente che non sei obbligato a usare questo, se non vuoi. È ancora possibile premere il tasto freccia giù. Ma, per coloro che si sentono più a proprio agio a tenere le mani in posizione di riposo, questo potrebbe essere preferito.
Il prossimo passo è ripetere il ciclo per su, sinistra e destra, usando lo stesso identico metodo.
'
Vim ha un bel comando, ci'
che ti consente di svuotare il contenuto della stringa successiva, racchiuso tra virgolette singole. È straordinariamente utile e può davvero velocizzare la tua codifica.
Proviamo a creare una macro per farlo in Espresso. Questo sarà più complicato, perché dobbiamo usare lo strumento di ricerca in Espresso per cercare la prossima occorrenza di una singola citazione. Quindi, la soluzione non sarà perfetta, ma riuscirà a completare parzialmente il lavoro.
Provalo tu stesso Ovunque nel tuo documento, digita cn'
. Sfortunatamente, almeno per ora, funziona perfettamente solo per singole parole racchiuse tra virgolette.
In Vim, se digiti un capitale C
, in modalità normale, cancellerà tutto il testo su una linea che viene dopo la posizione del cursore. È molto utile Possiamo fare lo stesso in Espresso con una semplice macro. però, MAIUSC + C
non funzionerà, perché l'Espresso non ha modalità
. Facciamo Caps Lock + C
anziché. Ricorda, i tappi ora vengono indirizzati al Controllo
chiave!
In Vim, con il plugin Surround, posso digitare dst
(elimina tag circostante) per eliminare un tag wrapping. Lo uso spesso. Hmm - questo sarà più complicato in Espresso, ma può essere fatto. Ecco cosa mi è venuto in mente; provalo sulla tua macchina.
È un po 'più complicato, ma funziona!
Nota che, se sembra che alcune di quelle azioni possano essere rimosse, sono lì perché ho trovato situazioni strane in cui erano necessarie. Meglio essere al sicuro.
Ugualmente utile quanto cancellare il tag circostante, è mutevole il nome del tag.
C'è una stranezza su questo particolare metodo. Poiché Espresso non è basato sulla modalità, quando cambi il tag, questo comando ti porterà fino al punto in cui puoi modificare il valore del tag. Una volta fatto, basta premere Destra
, e incollare nel testo originale (che è stato copiato dalla macro). Vedrai cosa intendo quando proverai. Fammi sapere se Espresso ha un comando change-tag-name.
Ok, questo dovrebbe iniziare. Se sei un membro Premium, assicurati di fare riferimento alla parte video di questo tutorial per una dimostrazione più personale. Ho creato un repository su Github, che contiene dozzine di comandi che sei libero di usare (e migliorare) come desideri.
dd
eliminare una linea rovinerà ogni volta che digiti "prendere in giro." Allora, cosa ne pensi? Ti piace l'idea? Sono curioso, anche se mi trovo nel secondo campo.
Il gruppo di tasti Keyboard Maestro viene costantemente aggiornato. Per scaricare la versione più aggiornata, scaricare qui: http://github.com/JeffreyWay/VimMimic-for-Espresso
Link tutorial:
Espresso: http://macrabbit.com/espresso/
Keyboard Maestro: http://www.keyboardmaestro.com