Începem prin a spune că Emacs este o familie de editoare renumite pentru extensibilitate. Condiția ca editorul tău să facă parte din această familie selectă este să permită programarea unor noi funcționalități într-un limbaj real de programare interpetat de editor, nu doar într-un limbaj de macrouri, limitat.
Ei bine, GNU Emacs este cel mai popular reprezentat al familiei Emacs și este dezvoltat activ în cadrul proiectului GNU.
GNU Emacs este un editor liber, pentru că dezvoltatorii lui îți permit ție ca utilizator să te uiți prin codul lui sursă, să-l modifici și să-l dai mai departe cui dorești. Un aspect drăguț dar nu tocmai util deocamdată, dacă nu l-ai încercat. Și mai mult ca să te fac curios, stai să te întreb:
Exemple: poze cu gnus, tetris și gdb
Clientul de poștă electronică Gnus, mod pentru GNU Emacs:
Jocul Tetris, mod pentru GNU Emacs:
Depanatorul GDB, mod pentru GNU Emacs:
Documentația modului organizator Orgmode.org pentru GNU Emacs:
Te-ai putea întreba de ce totuși nu ai auzit până acum de GNU Emacs. Poate pentru că:
De GNU sunt sigur că ai auzit, proiectul de sistem de operare complet liber. :-D
După cum probabil te așteptai, GNU Emacs se poate compila din surse și instala după formula:
$ wget http://ftp.gnu.org/pub/gnu/emacs/emacs.tar.gz
$ tar xzvf emacs.tar.gz
$ cd emacs
$ ./configure
$ make
$ make install
dacă ai utilitarele wget
, tar
și make
la îndemână, sau pe Gentoo GNU/Linux cu:
$ emerge -avt emacs
Îți recomand să descarci întotdeauna ultima versiune stabilă a surselor (pentru UNIX sau Windows).
Bineînțeles, dacă ești nerăbdător să-l încerci, poți descărca direct binarele precompilate și distribuite (eventual împachetate) de o organizație de încredere (Debian, Fedora, FreeBSD, Apple, OurComments.org).
Dacă folosești o distribuție GNU/Linux, îl poți instala mai ușor, printr-o comandă simplă, din depozitul oficial de pachete:
$ sudo apt-get install emacs
$ sudo yum install emacs
$ sudo zypper in emacs
Și iată că a venit momentul să lansăm editorul nostru mult lăudat. Implicit, GNU Emacs afișează o interfață grafică integrată în sistemului tău de ferestre, dar ai posibilitatea să-l rulezi și în terminal, cu comanda:
$ emacs -nw
Să observăm acum că ecranul Emacs este compus din câteva zone:
GNU Emacs cu zonele marcate:
Înainte să ne uităm pe o mică listă de comenzi de editare, e bine de precizat că fiecare comandă are un nume și poate avea una sau mai multe combinații de taste care o lansează automat. Dacă nu cunoști combinația de taste (sau comanda nu este legată la o combinație de taste) dar cunoști numele comenzii, o poți rula tastând M-x
și numele ei.
În terminologia Emacs, M-
este tasta Meta
, implicit mapată pe tastele Esc
sau Alt
. Tastele Meta
și Control
, reprezentate prin simbolurile M-
, respectiv C-
, sunt folosite de Emacs pentru a lărgi baza de combinații de taste ce pot fi legate la nume de comenzi, în scopul creșterii productivității. GNU Emacs vine implicit cu cele mai des folosite comenzi legate la combinații de taste consacrate de utilizatori, de-a lungul timpului (hei, au trecut 37 de ani de la prima versiune!).
Mai trebuie să recunosc că aproape fiecare comandă de mai jos poate fi înlocuită printr-un șir de taste cu săgeți, Del
, Bcksp
, Enter
, PgUp
, End
etc., dar nu ar fi o abordare productivă. Se pierde timp prețios căutând și mutând mâinile de pe litere, pentru aceste taste speciale. :-)
comanda | combinația | descrierea comenzii |
find-file |
C-x f |
deschide fișier sau director |
execute-extended-command |
M-x |
execută comanda |
next-line |
C-n |
mai jos cu un rând |
previous-line |
C-p |
mai sus cu un rând |
forward-char |
C-f |
la dreapta cu un caracter |
backward-char |
C-b |
la stânga cu un caracter |
begining-of-line |
C-a |
la început de rând |
end-of-line |
C-e |
la sfârșit de rând |
backward-page |
C-x [ |
la începutul paginii |
forward-page |
C-x ] |
la sfârșitul paginii |
keyboard-quit |
C-g |
renunță la comandă |
isearch-forward |
C-s |
caută interactiv înainte |
set-mark-command |
C-SP |
începutul selecției |
copy-region-as-kill |
M-w |
copiază selecția |
kill-region |
C-w |
decupează selecția |
yank |
C-y |
lipește textul |
kill-word |
M-d |
șterge cuvântul |
delete-char |
C-d |
șterge caracterul |
other-window |
C-x o |
altă fereastră |
save-some-buffers |
C-x C-s |
salvează |
save-buffers-kill-emacs |
C-x C-c |
salvează și închide |
Dacă ai început să încerci comenzile din tabel, probabil ai observat că este mai dificil să apeși tastele Esc
și Ctrl
în combinație cu litere. Specialiștii sunt de părere că este bine să folosești Alt
pentru M-
și Caps
pentru C-
.
Pe un sistem GNU/Linux poți găsi opțiunea de a face Caps
un Ctrl
alternativ, în aplicația de configurare a tastaturii. Pe Windows, poți rula un script care face aceeași treabă prin adăugarea unei intrări în baza de registre sau poți seta variabile speciale de Emacs pentru tastatura de Windows.
Hai să facem împreună un exercițiu simplu:
introducere.txt
.
Emacs este o familie de editoare renumite pentru extensibilitate.
Condiția ca editorul tău să facă parte din această familie selectă
este să permită programarea unor noi funcționalități într-un limbaj
real de programare interpetat de editor, nu doar într-un limbaj
de macrouri, limitat.
familie
cu clasă
.selectă
.Gata. A fost greu?
A, și dacă vrei o comandă nouă de la el, verfică mai întâi dacă nu este deja implementată (în programul de bază sau într-un modul separat), înainte să te apuci să o programezi în Elisp. :-D
Apasă M-x
pentru numele comenzii, apoi Tab
ca să apară o nouă fereastră cu lista comenzilor existente, în continuare tastează <C-x o
> pentru a te muta în fereastra cu lista, C-s
și un cuvânt care ar descrie funcționalitatea. În felul acesta eu am descoperit de curând comanda which-function-mode
, care afișează numele funcției curente pentru un fișier sursă deschis în Emacs. A fost suficient să caut cuvântul func
. ;-)
E, deci cum ți se pare Emacs?
Dacă vrei să aflii mai multe până data viitoare, citește și încearcă:
Adaugă comentariu nou