Porniți cele mai bune comenzi Vim editorului text preferat

Sunt sigur că toată lumea poate fi de acord că puterea și controlul oferite de un program precum Vim sunt incredibile. Cu toate acestea, în mod evident, mulți nu se simt confortabil cu diferitele moduri, și Linie de comanda simțiți-vă. Este greu de concurat, din punct de vedere vizual, cu un interfață frumoasă, cum ar fi Espresso. Dar, dacă am putea să luăm unele dintre cele mai populare comenzi / comenzi rapide Vim și să le portăm manual pentru utilizarea în Espresso? Nu ar fi cel mai bun din ambele lumi?


Scopul

Veți obține cele mai multe din acest tutorial dacă aveți o familiaritate modestă cu Vim și cu sintaxa sa.

Să facem câteva lucruri drepte, chiar de pe lilieci. A lucra cu Vim este să lucrezi cu o limbă; acesta este motivul pentru care este atât de puternic. Doriți să ștergeți următoarele patru cuvinte? Ușor, tip c4w (schimbați patru cuvinte). Cum rămâne cu următoarele două cuvinte? Ei bine, știm sintaxa: c2w. Hmm ... ce se întâmplă dacă trebuie să șterg următoarele trei linii de pe poziția cursorului? Din nou, nu trebuie să memorăm o comandă separată de tastatură; noi, în schimb, folosim limba: 3DD (ștergeți următoarele trei linii).

Scopul nostru este să portăm cât mai mult din această funcționalitate editorului popular Espresso pentru Mac. Motivul pentru care acest lucru este specific pentru Espresso se datorează faptului că vom folosi macrocomenzi pentru a imita o mână de sarcini pentru fiecare comandă. Tastele specifice / cursele de tastatură vor varia de la editor la editor.

Sper că membrii comunității vor începe să-și creeze propriile lor porturi pentru editorii lor preferați. În acel moment, putem dezvolta un depozit pe Github.

Cu siguranță nu putem porta întreaga limbă și modurile sale spre Espresso; asta e imposibil. Dar putem imita multe dintre cele mai populare comenzi cu macrocomenzi.


Full Screencast



De ce sa te deranjezi?

Presupun că răspunsul la această întrebare depinde în întregime de ... tu. Când am început procesul de 4 săptămâni din Vim, în septembrie, m-am îndrăgostit repede de modurile și limba. Cu toate acestea, fiecare editor are avantajele și dezavantajele sale. În cazul meu, deși încă mai iubesc și folosesc Vim în fiecare zi, nu-mi place cum:

  • Chiar și cu plugin-uri, cum ar fi NerdTREE, este încă dificil pentru mine să lucrez cu proiecte mari și structuri de foldere.
  • Lucrul cu fișiere, prin FTP, a fost mai dificil decât utilizarea Espresso.
  • Nu există nici o îndoială că Vim nu poate fi la fel de frumos ca o aplicație nativă de cacao.
  • Espresso are un fund previzualizare live caracteristică care poate fi activată, într-o filă nouă, pur și simplu tastând Comandă + Opțiune + P. În plus, această fereastră se actualizează în timp real, pe măsură ce tastați.
  • M-am străduit să găsesc utilități adecvate de depanare pentru Vim.

Recent, pe măsură ce mă jucasem cu macrocomenzi de tastatură, m-am întrebat dacă există o modalitate de a porni această funcție. Poate că vă va plăcea ideea; Poate că o să-i urăști.


Instrumente necesare

În timp ce Vim este 100% gratuit (care face parte din măreția sa), Espresso nu este. Mai mult, vom crea macro-uri de tastatură cu un program numit Keyboard Maestro. Și asta nu este liberă. Sunt sigur că există programe de creare a macrocomenziilor open source disponibile pe web; cu toate acestea, acesta este cel mai bun pe care l-am putut găsi. Merită 35 de dolari.

Pentru a urmări, veți avea nevoie de:

  • Un Mac
  • O copie a editorului de cod Espresso al MacRabbit. Din nou, puteți utiliza orice editor; dar macrocomenzile vor diferi ușor. Urmați împreună cu acest tut, apoi creați propriile macrocomenzi ale editorului. (Apoi, lasă-mă să știu!)
  • O copie a tastaturii Maestro. Dacă nu l-ați folosit niciodată, puteți descărca o încercare pe deplin de pe site-ul lor. MacAppStorm are un articol grozav despre KeyBoard Maestro, dacă aveți nevoie de un primer.

Primul tău macro

Să începem cu un simplu Macro. Folosind Vim în normal modul, putem tasta CIW (schimbați cuvântul interior) pentru a șterge cuvântul curent și a vă deplasa introduce mod.

Acum, Espresso nu are moduri, dar, după cum am aflat, e în regulă. Încă putem să tastăm aceste comenzi; în timp ce acestea vor fi introduse ca text obișnuit, de îndată ce declanșează macro-ul, acestea vor fi șterse foarte repede.

Deci, pentru prima noastră macrocomandă, vrem să imităm această funcționalitate. Când cursorul se află pe un cuvânt, vreau să tip rapid cw pentru a schimba cuvântul.

Umm ... de ce nu l-ai lovit Comandă + Shift + W scurtătură?

Da, am putea face asta, dar, în opinia mea, nu ar trebui.

  • Dacă fiecare comandă simplă are propriul modifier confuz + scurtătură cheie, devine repede dificil să-i amintiți pe toți.
  • Îmi place aspectul limbaj al lui Vim. Odată ce ați învățat-o, ideea de a reveni la apăsarea mai multor chei de modifiers devine o mare durere.
  • Un mare avantaj pentru Vim este că pune un accent deosebit pe menținerea degetelor blocate (cât mai mult posibil) la rândul central al tastaturii. Nu numai că acest lucru vă permite să tastați mai repede, dar, de asemenea, nu trebuie să vă întindeți degetele ori de câte ori doriți să efectuați o operație simplă.

Sarcina 1

Atunci când creați o macrocomandă nouă, primul pas este să vă dați seama cum să efectuați sarcina manual în editorul de coduri. În acest caz, Shift + Command + W va selecta cuvântul. Apoi, șterge cheie, desigur, va șterge cuvântul. Aceste două comenzi vor mimeza singure CIW în Vim.

Activați tastatura Maestro

Următorul pas este să creați macrocomanda. Activați tastatura Maestro și, înainte de orice, creați un grup nou special pentru comenzile dvs. Vim.

În acest fel, puteți limita aceste comenzi rapide să fie aplicate numai la Espresso, și nu, de exemplu, Microsoft Word. Mi-am sunat grupul, VimMimic.

Acum, trebuie să creați o macrocomandă nouă, să setați un declanșator și să alegeți extensia.

Dacă vă întrebați de ce nu vă folosim programul TextExpander existent, acest lucru se datorează faptului că programele de genul acesta doar extind textul. Dar trebuie să realizăm macrocomenzi sau sarcini.

Înregistrarea macrocomenzii

Odata cu pregatirea, acum trebuie sa ne inregistram pasii. În timp ce tastatura Maestro are numeroase foldere / comenzi disponibile, este minunat faptul că oferă un buton "Înregistrare", în care va asculta și înregistra orice taste pe care le tastați, mișcări / clicuri de mouse etc..

Dacă aveți nevoie, reveniți la Espresso și memorați tastele / comenzile de care aveți nevoie pentru a introduce cuvântul. Cu toate acestea, fii inteligent în legătură cu acest lucru. De exemplu, dacă macroul dvs. va selecta ceva asemănător sheldon.couper in intregimea sa? Sau doriți să selectați numai cuvântul, până la (sau după) perioadă? În Espresso, Comandă + Shift + W va efectua aceasta din urmă. Decideți-vă pe aceasta. Cred că o voi face pe primul și voi selecta totul.

În acest caz, trebuie să fiu mai inteligent cu privire la macro. După un pic de tower în jurul, cu asta am venit.

Dacă doriți, creați oa doua macrocomandă, CIW (modificați cuvântul interior), care va selecta numai înainte sau după perioada respectivă.

Încercând-o

După ce ați finalizat macrocomanda, încercați! Reveniți la Espresso și, odată ce cursorul este peste un cuvânt, tastați cw. Aceasta va declanșa macroul, în care vor fi redate toate acțiunile dvs. înregistrate anterior, la viteză mare.

Sper că există o modalitate de a efectua o macrocomandă fără a actualiza interfața de utilizator până la sfârșit. Dar nu știu cum să procedez în acest moment.

Un lucru întreg Lotta

Dacă nu sunteți utilizator Vim, m-aș aștepta să vă gândiți la voi înșivă: "Toate aceste lucruri doar pentru a șterge un cuvânt?" Și, crede-mă, înțeleg. Ce vă pot spune însă este că, odată ce ați folosit Vim pentru o perioadă de timp, o sintaxă asemănătoare limbajului vă face mult mai multă sens decât să memorați numeroase comenzi rapide de la tastatură modificatoare.

Și, acordat, acesta este un exemplu foarte minim.


j pentru Down; k pentru sus

Prima dată când am aflat că era de așteptat să folosesc literele pentru a mă deplasa în sus, în jos, la stânga și la dreapta (kjhl), Am râs. Cât de de modă este asta !? Dar, odată ce ați angajat cheile pentru memoria musculară, viteza crește. Nu mai trebuie să trageți mâna dreaptă în secțiunea din partea dreaptă a tastaturii pentru a atinge tasta săgeată în jos. Nu - mâinile rămân în poziție de repaus, deoarece acele chei se află direct în al doilea rând.

Vim folosește mods pentru comutarea între comenzi și inserarea textului. Dar, așa cum am menționat mai sus, Espresso nu are aceste. Deci, vom folosi Majuscule cheie pentru a servi ca noi normal mod.

Reluarea cheii Caps Lock

Întrebați-vă: "Cât de des folosesc vreodată majuscule cheia? "Daca esti ca mine, raspunsul este," Aproape niciodata "Cu acest lucru in minte, folositi ceva din aceasta si reorientati functia acestuia. Pe un Mac, acest lucru este simplu.

Mergi la Preferințe sistem -> Tastatură -> Taste modificatoare, și schimbați Majuscule pentru a vă deplasa la Control cheie, pe care întotdeauna am probleme de țintire atunci când am tastat (cel puțin pe laptop-ul meu).

Acum, ori de câte ori apăsați majuscule, Control cheia va fi declanșată.


Creați o nouă macrocomandă

Acest lucru este de râs simplu, dar funcționează. Acum, când tastați Caps Lock + J, săgeata în jos va fi declanșată. Este important să rețineți că nu sunteți obligat să folosiți acest lucru, dacă nu doriți. Puteți să apăsați în continuare tasta săgeată în jos. Dar, pentru cei care se simt mai confortabil, ținându-și mâinile în poziție de repaus, acest lucru ar putea fi preferat.

Repetați pentru fiecare direcție

Următorul pas este repetarea ciclului pentru sus, spre stânga și spre dreapta - folosind aceeași metodă.


Schimbați următorul '

Vim are o comandă plăcută, CI“ care vă permite să goliți conținutul următorului șir, înfășurat în ghilimele simple. Este uimitor de util și poate accelera într-adevăr codarea.

Să încercăm să creăm o macrocomandă pentru a face acest lucru în Espresso. Aceasta va fi mai complicată, pentru că trebuie să folosim instrumentul de căutare în Espresso pentru a căuta următoarea apariție a unei singure citate. Deci, soluția nu va fi perfectă, dar va face treaba parțial.

Încearcă-te pentru tine. Oriunde în documentul dvs., tastați cn“. Din păcate, cel puțin pentru moment, funcționează perfect numai pentru cuvinte singulare înfășurate în ghilimele.


Schimbați până la sfârșitul liniei

În Vim, dacă introduceți un capital C, în modul normal, va șterge tot textul de pe o linie care vine după poziția cursorului. Este foarte util. Putem face același lucru în Espresso cu o macrocomandă simplă. in orice caz, Shift + C nu va funcționa, deoarece Espresso nu are moduri. Hai sa facem Caps Lock + C in schimb. Amintiți-vă, capacele sunt acum rutele spre Control cheie!


Ștergeți eticheta înconjurătoare

În Vim, cu pluginul Surround, pot tasta dst (ștergeți eticheta din jur) pentru a șterge o etichetă de împachetare. Eu o folosesc de multe ori. Hmm - acest lucru va fi mai dificil în Espresso, dar se poate face. Iată ce am venit; încercați-l pe mașina dvs..

Este un pic mai complicat, dar funcționează!

Rețineți că, dacă se pare că unele dintre aceste acțiuni pot fi eliminate, sunt acolo pentru că am găsit situații ciudate în care erau necesare. Mai bine să fii în siguranță.


Schimbați eticheta înconjurătoare

La fel de util ca ștergerea etichetei înconjurătoare, este schimbare numele etichetei.

Există o singură idee despre această metodă particulară. Deoarece Espresso nu este bazat pe mod, atunci când schimbați eticheta, această comandă vă va duce până în punctul în care puteți schimba valoarea etichetei. Odată ce faceți, pur și simplu apăsați Dreapta, și lipiți-o în textul original (care a fost copiat de macrocomandă). Veți vedea ce vreau să spun când îl încercați. Anunță-mă dacă Espresso are o comanda construită în schimbare-tag-name.


Concluzie

Bine, ar trebui să începi. Dacă sunteți membru Premium, asigurați-vă că vă referiți la porțiunea video a acestui tutorial pentru o demonstrație mai mult unu-la-unu. Am creat un depozit la Github, care conține zeci de comenzi pe care sunteți liber să le utilizați (și să vă îmbunătățiți) cum vreți.

Lucruri de a fi precaut de

  • Nu alegeți comenzile rapide pe care le-ați tasta în mod normal. De exemplu, folosind dd pentru a șterge o linie, veți șterge lucrurile de fiecare dată când tastați „Glumești.“
  • Aveți grijă de comenzile construite. Acest lucru este întotdeauna dur; este posibil să dureze câteva încercări și erori pentru a găsi cele mai scurte comenzi neintensive.

Deci ce crezi? Îți place ideea? Sunt curios, chiar dacă mă încadrez în tabăra din urmă.

Grupul de macrocomenzi pentru Maestro de la tastatură este în permanență actualizat. Pentru a descărca cea mai actualizată versiune, vă rugăm să o primiți aici: http://github.com/JeffreyWay/VimMimic-for-Espresso

Tutorial Link-uri:

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

Cod