Vim i Emacs: Sve tiho sprijeda

Među Sveti ratovi Naj legendarniji kojeg smo svjesni je rat izdavača. Vi / Vim protiv Emacsa. To je posebno zabavno jer su oboje besplatni softver i imaju vrlo visoke mogućnosti.

To seže mnogo godina unazad. Emacs je razvio Richard Stallman 35-ih, objavljen prije otprilike 1991 godina. Vi je otprilike istih godina, stvorio ju je Bill Joy. S druge strane, Vim je nešto noviji i proizlazi iz potrebe da Bram Moolenar XNUMX. stvori klon Vi za Amigu.

Kako retro! Nakladnici iz kamenog doba, kad se živjelo jednostavnije. A mi ih i dalje koristimo jer se razvijaju i prilagođavaju vremenu. Vim i Emacs koriste moderna sučelja u GTK-u, imaju vlastite jezike proširenja, upravitelje paketa; između ostalog što ih je svrstalo među urednike moderna.

Za što ih koristim?

Stavimo potpuno hipotetsku okolnost. Gúgol je matematička riječ koja definira riječ iza koje slijedi sto nula. Kako to zapisujemo u uređivač teksta?

Prvo rješenje koje mi padne na pamet je utipkati jedan i pritisnuti tipku 0 dok me brojač stupaca ne postavi na 101, jer bi 101 znak trebao mjeriti ovaj izraz. Pretpostavljamo da to uređujemo u nadležnom uređivaču teksta koji ima statusnu traku za prikaz tih stvari.

Sada mogu smisliti jednostavnije rješenje:

i1 ESC 100a0 ESC

Naravno, ovo rješenje zahtijeva Vim ili barem Vi. On naredba je sasvim jednostavno i kao da smo Vimu rekli: Biti u normalnom načinu rada, umetni 1 i vraća se u normalni način rada. Sada umetnite stotinu puta nakon kursora 0 i vraća se u normalni način rada. Vim će izvršiti našu narudžbu bez pitanja.

Složenost

Ovo rješenje zvuči izuzetno složeno i shvaćam. Prvo, jer imamo posla s pojmom a modalni urednik. Ali postoje slučajevi kada je to mnogo korisnije nego što zvuči.

Recimo da imamo popis za kupnju. Otići ćemo u trgovinu i želimo napisati što ćemo donijeti. Imajte na umu da je to nešto hipotetičko, nitko ne bi smio odvesti računalo u trgovinu po hranu. Svejedno, ovo je naš popis:

1 banana 4 jabuke 2 kilograma šećera 1 litar vode

To je vrlo jednostavan popis za kupnju. Ali mi ćemo se dogovoriti. Prvo, mislim da još nekoliko banana ne bi bilo loše. Budući da volimo estetiku, promijenit ćemo mala slova u manzanas da je ostavi kao banana a imena jedinica zamijenit ćemo njihovim kraticama.

Pa krenimo. Budući da želimo sigurnosnu kopiju izvornog popisa, kopiramo ga s 4yy a mi ga zalijepimo dolje s p. Pritisnite Ctrl-a nekoliko puta da povećate broj banana i prijeđete na kraj sljedeće riječi s e. Spustimo se do drugog retka, radimo a Fm da dođem do riječi jabuke i pritisnem ~ (AltGr-4 na mojoj tipkovnici) tako da se slovo promijeni u svoju veliku verziju. Izrađujemo a j da se spustimo u sljedeći redak i pojavljujemo se u k od kilograma s b. Iz normalnog načina izlazimo tipkanjem cw i pisanje zamjenske riječi za kilograme, što će biti kg. Pritisnite ESC, vraćajući se u normalni način i opet j učiniti isto s Litra. Spreman. Ovako sada izgleda naš popis.

3 banane 4 jabuke 2 kg šećera 1 L vode

Moć

Sažmimo prethodnu akciju u ovome:

4yy G p 2Ctrl-A e Fm ~ jb cw kg ESC jb cw L ESC

Poštivao sam neke prostore kako bi to bilo razumljivo, ali to se obično ne radi. Ovakav poredak robota tjera nas da puno razmišljamo o njegovoj korisnosti. Ali to je sigurno brže nego kretati se mišem, odabrati, kopirati, zalijepiti, izbrisati i tako dalje.

Urednici sve dok Vim ili Emacs mogu raditi ovakve stvari jer su razvijeni godinama i imaju vrlo jasne ideje kako to učiniti.

Krivulje učenja

Da, strme su. Ali tome su namijenjene inicijative poput Kreme, koja nudi potpuno spremno Vim okruženje odmah iz kutije, bez potrebe za borbom s načinima rada i onim, i guru-načinom, Emacs proširenjem koje - koliko znam - pomaže početnicima.

Guru-način dio je Emacs Preludea, kolekcije proširenja što vam olakšava ako želite naučiti

Proširenja

Budući da su uređivači rašireniji od mnogih modernih urednika i imaju vlastite jezike proširenja, možete pronaći teme u boji, dodatke i još mnogo toga. Postoje tako zanimljive stvari poput:

Čini se da je lakše (ili ugodnije) programirati proširenja u Emacs Lispu nego u VimScript-u. Mislim, to je funkcionalni jezik koji se tumači kernelom stvorenim za to, u odnosu na imperativni jezik stvoren za konfiguriranje i proširivanje.

Zaključak

Pogledaj! Ne košta vas ništa, oboje je besplatni softver koji se distribuira besplatno. Moraju se nalaziti u spremištima svih čovjekovih distribucija, a mogu se naći i u zlonamjernim vlasničkim sustavima. Nema se puno više što tražiti.

I na kraju, ako ste bili iznenađeni što sam ispred Emacsa u naslovu stavio e umjesto y, to je zato što mi to bolje zvuči. Nešto poput /í-macs/. Uspio sam se uštedjeti problema s pravopisom promjenom položaja, ali stvarno volim da mu Vim to radi 