Difference between revisions of "Emacs (Српски)"

From ArchWiki
Jump to: navigation, search
(Created page with "Category:Utilities (English) {{i18n|Emacs}} {{Article summary start|Summary}} {{Article summary text|Tutorial on acquiring and using the Emacs text editor.}} {{Article summar...")
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Utilities (English)]]
+
[[Category:Utilities (Српски)]]
{{i18n|Emacs}}
+
[[en:Emacs]]
 
{{Article summary start|Summary}}
 
{{Article summary start|Summary}}
{{Article summary text|Tutorial on acquiring and using the Emacs text editor.}}
+
{{Article summary text|Uputstvo za instaliranje i upotrebu Emacs tekst editora.}}
 
{{Article summary end}}
 
{{Article summary end}}
  
Emacs is the extensible, customizable, self-documenting real-time display editor. At the core of Emacs lies an [[wikipedia:Emacs Lisp|Emacs Lisp]] interpreter, the language in which the majority of Emacs' built-in functionality and extensions are implemented. GTK is the default X toolkit used as of GNU Emacs 22, though it functions equally well within a CLI environment. The text-editing capabilities of Emacs are often compared to that of [[vim]].
+
Emacs je prosiriv, prilagodljiv, samo-dokumentovan editor koji radi u realnom vremenu. U srzi Emacs-a lezi [[wikipedia:Emacs Lisp|Emacs Lisp]] interpreter, jezik u kom je vecina Emacs-ove funkcionalnosti i ekstenzija implementirano. GTK je osnovni X skup alata koji koristi GNU Emacs 22, ali on i dalje funkcionise odlicno i u CLI (komandna linija) okruzenju. Emacs kapaciteti za tekst editovanje se obicno porede sa [[vim]]-ovim.
  
== Installation ==
+
== Instalacija ==
Emacs comes in several variants (sometimes referred to as ''emacsen'').  The most common of these is GNU Emacs, which can be installed (as root) via:
+
Emacs dolazi u nekoliko varijacija (ponekad se naziva ''emacsen'').  Najzastupljeniji od ovih je GNU Emacs koji moze da se instalira (kao root) preko:
 
  # pacman -S emacs
 
  # pacman -S emacs
Another common variant is xemacs, which is also available for installation via pacman.
+
Druga uobicajena varijacija je xemacs, koji je takodje dostupan za instalaciju preko pakmena.
  
== Quick Start ==
+
== Brzi start ==
Although Emacs is complex, it will not take long to begin to understand the benefits which the level of customization and extensibility bring. Furthermore, the comprehensive variety of extensions already available allows  it to be transformed into a powerful environment for almost any form of text-editing.
+
Iako je Emacs kompleksan, nece proci puno vremena pre nego sto pocnete da shvatate koristi koje nivo prilagodljivosti i prosirivosti donosi. Stavise, sveobuhvatna raznolikost dodataka (ekstenzija) koje su vec dostupne pruzaju mogucnost transformacije u mocno okruzenje za skoro svaki oblik tekst editovanja.
  
Emacs has an excellent built-in tutorial which can be accessed by clicking the first link on the splash screen; by selecting ''Help->Emacs Tutorial'' from the menu or by pressing 'F1' followed by 't'. This page is designed to be an additional resource for getting started with Emacs.
+
Emacs ima odlican ugradjen tutorijal kom se moze pristupiti klikom na prvi link na sples ekranu (pocetni ekran prilikom paljenja Emacs-a); selektovanjem ''Help->Emacs Tutorial'' iz menija ili pritiskanjem 'F1' praceno sa 't'. Ova stranica je napravljena s ciljem da bude dodatni izvor za startovanje sa Emacs-om.
  
Emacs also includes a set of reference cards, useful for beginners and experts alike, see {{Filename|/usr/share/emacs/<version>/etc/refcards/}} (substitute <version> for your version of emacs).
+
Emacs takodje sadrzi skup referentnih kartica, korisnih za pocetnike i eksperte, pogledajte {{ic|/usr/share/emacs/<version>/etc/refcards/}} (zamenite <version> sa vasom verzijom emacs-a).
  
===Running Emacs===
+
===Pokretanje Emacs-a===
To start Emacs run:
+
Da startujete Emacs izvrsite:
  
 
  $ emacs
 
  $ emacs
  
or, to use it from the console:
+
ili, da ga koristite iz konzole:
  
 
  $ emacs -nw
 
  $ emacs -nw
  
A file name can also be provided to open that file immediately:
+
Mozete da dodate ime fajla da bi ste odmah otvorili taj fajl:
  
 
  $ emacs filename.txt
 
  $ emacs filename.txt
  
===Basic terminology and convention===
+
===Osnovna terminologija i konvencija===
Emacs uses some terminology and conventions which may seem unusual at first and will be introduced where appropriate. However, there is some terminology which should be introduced before-hand, as it is fundamental to working with Emacs.
+
Emacs korisnici koriste terminologiju i konvencije koje mogu delovati neobicno u pocetku i zbog toga cemo ih predstavljati kako budu nailazile redom. Ipak, postoji deo terminologije koju treba predstaviti odmah, jer je od vitalnog znacaja za rad sa Emacs-om.
  
The one piece of terminology which must be introduced early is the concept of ''buffers''. A buffer is a representation of data within Emacs. For example, when a file is opened in Emacs, that file is read from disk and its contents stored in a buffer, which allows it to be edited and saved back to disk later. Buffers are not limited to text, and can also contain images and widgets. Work is in progress to allow buffers to even display applications!  Another way to think of it: data available on disk is referred to as a 'file', whereas data available in Emacs is referred to as a 'buffer'.
+
Deo terminologije koju je neophodno odmah predstaviti je koncept ''bafera''. Bafer predstavlja podatke u okviru Emacs-a. Na primer, kada je fajl otvoren u Emacs-u, taj fajl je iscitan sa diska i njegov sadrzaj je skladisten u baferu, koji pruza mogucnost njegovog editovanja i cuvanja nazad na disk kasnije. Baferi nisu ograniceni na tekst i mogu da sadrze i slike i dodatke. Drugi nacin da razmisljate o tome: podaci dostupni na disku se nazivaju 'fajl', dok podaci dostupni u Emacs-u se nazivaju 'bafer' (eng. buffer).
  
The convention for key sequences in Emacs may be unfamiliar. Namely:
+
Konvencija za imenovanje tastera u Emacs-u ce vam najverovatnije biti nepoznata.
  
'''C-x''' refers to Control-x
+
'''C-x''' se odnosi na Control-x
  
'''M-x''' refers to Meta-x
+
'''M-x''' se odnosi na Meta-x
  
{{Note|'Meta' corresponds to the Alt key in most cases. Alternatively, the Esc key can be used.}}
+
{{Note|'Meta' odgovara Alt tasteru u vecini slucajeva. Alternativno moze da se koristi Esc taster.}}
  
For example, to exit Emacs use the following key sequence: '''C-x C-c'''.  This can be read as "Hold Control and press 'x'.  ReleaseHold Control and press 'c'."  Although Emacs provides a menu bar, it is recommended practise to focus on learning the key sequences.   This guide will refer to keybindings with the convention used in Emacs from now on.
+
Na primer, za izlazak iz Emacs-a se koristi sledeca sekvenca: '''C-x C-c'''.  Ovo moze da se procita kao "Drzi kontrol i pritisni 'x'.  PustiDrzi kontrol i pritisni 'c'."  Iako Emacs pruza meni liniju, preporucljiva praksa je da se fokusira na ucenje taster sekvenci. Ovo uputstvo ce koristiti imena skracenica prema konvenciji koja se koristi u Emacs-u.
  
===Movement===
+
===Pokretanje===
Cursor movement is very similar to other graphical editors. The mouse and arrow keys can be used to change the position of the cursor (referred to as ''point'' in Emacs). The standard movement commands performed by the arrow keys also have more accessible bindings in Emacs. To move forward one character, use '''C-f''' and to move one character backward, '''C-b'''. '''C-n''' and '''C-p''' can be used to move to the next and previous lines, respectively. Again, it is generally recommended to use these key-sequences in preference to the mouse and/or arrow keys.
+
Pomeranje kursora je slicno kao i u drugim grafickim editorima. Mis i tasteri sa strelicama mogu da se koriste za promenu pozicije kursora (naziva se kao ''point'' u Emacs-u). Standardne komande za kretanje koje se vrsi pomocu tastera sa strelicama takodje imaju pristupacnije skracenice u Emacs-u. Da se pomerite napred jedan karakter, upotrebite '''C-f''', da se pomerite jedan karakter unazad, '''C-b'''. '''C-n''' i '''C-p''' se mogu upotrebiti za pomeranje na sledecu i prethodnu liniju, redom. Opet, generalno se preporucuje upotreba ovih precica u odnosu na mis ili tastere sa strelicama.
  
As might be expected, Emacs provides more advanced movement commands, including moving by word and sentence. '''M-f''' moves forward one word and '''M-b''' will move point one word backward. Similarly, '''M-e''' moves point one sentence forward and '''M-a''' one sentence backward.
+
Kao sto se moze ocekivati, Emacs pruza naprednije komande za kretanje, ukljucujuci kretanje po rec i recenicu. '''M-f''' pomera napred jednu rec i '''M-b''' ce pomeriti kursor jednu rec unazad. Slicno, '''M-e''' pomera kursor jednu recenicu napred i '''M-a''' jednu recenicu nazad.
  
Until now, all of the movement commands introduced have been relative to point. '''M-<''' can be used to move point to the beginning of the buffer, with its counterpart, '''M->''', moving to the end of the buffer. To move point to a specific line number, use '''M-g g'''.  '''M-g g''' will prompt for the desired line number. Also, to move to the start or end of the current line, use '''C-a''' or '''C-e''', respectively.
+
Do sada, sve komande za kretanje koje su predstavljene su bile relativne u odnosu na trenutnu poziciju. '''M-<''' se moze koristiti za pomeranje kursora na pocetak bafera, sa svojim kolegom, '''M->''', koji vrsi pomeranje na kraj bafera. Da pomerite kursor na odredjeni broj linije, upotrebite '''M-g g'''.  '''M-g g''' ce vas upozoriti za zeljeni broj linije. Takodje, da se pomerite na pocetak ili kraj tekuce linije, upotrebite '''C-a''' ili '''C-e'''.
  
{{Note|Keybindings for these commands, or indeed any command, may differ ''slightly'' depending on which modes are currently active. However, it is unusual for the replacement command not to provide equivalent functionality.   See [[Emacs#Modes|Modes]] for more information.}}
+
{{Note|Skracenice za ove komande, ili bilo koju komandu, se mogu razlikovati ''blago'' u zavisnosti od modova koji su trenutno aktivni. Ipak, te skracenice u najvecem broju slucajeva pruzaju jednaku funkcionalnost. Pogledajte [[Emacs#Modes|Modes]] za vise informacija.}}
  
===Files and buffers===
+
===Fajlovi i baferi===
Emacs provides a series of commands to act upon files, the most common of which will be detailed here. '''C-x C-f''' is used to open a file (this command is called 'find-file' in Emacs).  Should the file specified not exist, Emacs will open an empty buffer. Saving a buffer will create the file with the buffer's contents. '''C-x C-s''' can be used to save a buffer. To save a buffer with a different filename, use '''C-x C-w''' (this is a mnemonic for the command 'write-file'), which will prompt for the new filename before writing it to disk. It is also possible to ensure all buffers are saved with '''C-x s''', which, should a buffer be modified since its last save, a prompt will be displayed asking which action to take.
+
Emacs pruza seriju komandi koje se primenjuju na fajlove. O najzastupljenijoj komandi ce biti vise detalja ovde. '''C-x C-f''' se koristi za otvaranje fajla (ova komanda se zove 'find-file' u Emacs-u).  Ukoliko zadati fajl ne postoji, Emacs ce otvoriti prazan bafer. Cuvanje bafera ce kreirati fajl sa sadrzajem bafera. '''C-x C-s''' se moze koristiti za cuvanje bafera. Da sacuvate bafer sa razlicitim imenom fajla, upotrebite '''C-x C-w''' (ovo je mnemonika za komandu 'write-file'), koja ce upozoriti za novo ime fajla pre njegovog zapisivanja na disk. Takodje je moguce sacuvati sve trenutno otvorene bafere sa '''C-x s'''. Zadavanjem ove komande, ukoliko su baferi menjani od poslednjeg cuvanja, dobicete upozorenje koje ce vas pitati koju akciju zelite da sprovedete.
  
{{Note|'''C-x C-f''' does not read the file from disk again if a buffer corresponding to the file is still opened. To re-read the file from disk, kill the buffer ('''C-x k''') prior to '''C-x C-f''' or use '''M-x revert-buffer'''.}}
+
{{Note|'''C-x C-f''' ne cita opet fajl sa diska ako je bafer koji odgovara fajlu i dalje otvoren. Da ponovo iscitate fajl sa diska, ubite bafer ('''C-x k''') pre '''C-x C-f''' ili upotrebite '''M-x revert-buffer'''.}}
  
Many interactive commands such as "find-file" or "write-file" prompt for input in the bottom-most line of the Emacs window. This line is referred to as the ''minibuffer''.  The minibuffer supports many basic editing commands as well as tab-completion similar to that which is available in many *nix shells. '''<TAB>''' can be pressed twice in succession to display a list of completions, and if desired, the mouse can be also be used to select a completion from that list. Completion in the minibuffer is available for many forms of input including commands and filenames.
+
Mnoge interaktivne komande poput "find-file" ili "write-file" daju upozorenje za unos u skroz donjoj liniji Emacs prozora. Ova linija se naziva ''minibuffer''.  Minibafer podrzava mnoge osnovne komande za editovanje kao i tab dovrsavanje komandi. Slicno onom koje je dostupno u mnogim *nix komandnim linijama. '''<TAB>''' se moze pritisnuti dva puta uzastopno za prikaz liste kompletnih komandi, i ako zelite, mozete da upotrebite mis da selektujete kompletnu komandu sa te liste. Kompletiranje u minibaferu je dostupno za mnoge forme unosa ukljucujuci komande i imena fajlova.
  
The minibuffer also provides a history feature. The previous items entered for a command can be recalled using the '''Up Arrow''' or '''C-p'''.
+
Minibafer takodje pruza mogucnost pracenja istorije. Prethodne unesene komande se mogu ponovo pozvati upotrebom '''Up Arrow''' ili '''C-p'''.
  
To exit the minibuffer at any time, press '''C-g'''.
+
Da izadjete iz minibafera u bilo kom momentu, pritisnite '''C-g'''.
  
After opening several files, a way to switch between them is needed. Opening a file corresponding to a buffer already available in Emacs, will cause Emacs to switch to that buffer. But this is not the most effective way. Emacs provides '''C-x b''', which prompts for the new buffer to be displayed (tab-completion is available here). By entering the name of a buffer which does not exist, a new buffer with that name will be created.
+
Nakon otvaranja nekoliko fajlova, metod za prelazak izmedju njih je neophodan. Otvaranjem fajla koji vec ima svoj bafer u okviru Emacs-a ce prouzrokovati prelazak na taj bafer. Ovo nije najefikasniji nacin. Emacs pruza '''C-x b''', koji upozorava za prikaz novog bafera (tab kompletiranje je dostupno). Unosom imena bafera koje ne postoji, novi bafer sa tim imenom ce biti napravljen.
  
{{Note|To switch to the previous buffer use '''C-x b <RET>''', as the previous buffer is the default.}}
+
{{Note|Da predjete na prethodni bafer, upotrebite '''C-x b <RET>'''.}}
  
A list of all open buffers can be displayed using '''C-x C-b'''.  Should a buffer no longer be required, it can be removed with '''C-x k'''.
+
Lista svih otvorenih bafera se moze prikazati upotrebom '''C-x C-b'''.  Ako bafer vise nije potreban, moze se ukloniti sa '''C-x k'''.
  
===Editing===
+
===Editovanje===
Many editing commands exist within Emacs. Perhaps the most important command which has not yet been introduced is 'undo', which can be performed via '''C-_''' or '''C-/'''.  Movement commands generally also have a corresponding delete command. For example, '''M-<backspace>''' can be used to delete a word backwards, and '''M-d''' to delete a word forwards. To delete to the end of the line, or the end of the sentence, use '''C-k''' or '''M-k''', respectively.
+
Postoji veliki broj komandi za editovanje u okviru Emacs-a. Najbitnija komanda je verovatno ona koju jos nismo predstavili, a to je 'undo', koja se moze pokrenuti sa '''C-_''' ili '''C-/'''.  Komande za kretanje generalno takodje imaju odgovarajuce komande za brisanje. Na primer, '''M-<backspace>''' se moze koristiti za brisanje reci unazad, i '''M-d''' za brisanje reci unapred. Da obrisete do kraja linije, ili kraj recenice, upotrebite '''C-k''' ili '''M-k'''.
  
It is a rule-of-thumb that no line be allowed to exceed 80 characters. This aids readability, especially in cases where the line wraps at the edge of a window. Automatically inserting (or removing) line separator(s) is known as ''filling'' in Emacs. A paragraph can be filled using '''M-q'''.
+
Osnovno je pravilo da ni jedna linija ne treba da prelazi 80 karaktera. Ovo doprinosi citljivosti, pogotovo u slucajevima gde linija obavija na ivici prozora. Automatsko ubacivanje (ili uklanjanje) linije za razdvajanje je poznato kao ''filling'' u Emacs-u. Paragraf moze biti popunjen upotrebom '''M-q'''.
  
Characters and words can be transposed using '''C-t''' and '''M-t''', respectivelyFor example: <code>Hello World!</code> → <code>World! Hello</code>
+
Karakteri i reci mogu biti transponovani koriscenjem '''C-t''' i '''M-t'''.  Naprimer: <code>Hello World!</code> → <code>World! Hello</code>
  
The case of words is also readily adjustable. '''M-l''' downcases a word from point (<code>HELLO</code> → <code>hello</code>); '''M-u''' upcases a word from point (<code>hello</code> → <code>HELLO</code>) and '''M-c''' capitalizes the first character of a word from point while downcasing the remainder (<code>hElLo</code> → <code>Hello</code>).
+
Velika i mala slova su takodje podesiva. '''M-l''' prebacuje u mala slova sledecu rec od kursora (<code>HELLO</code> → <code>hello</code>); '''M-u''' prebacuje u velika slova sledecu rec od kursora (<code>hello</code> → <code>HELLO</code>) i '''M-c''' pretvara prvi karakter sledece reci od kursora u veliko slovo, dok ostale karaktere pretvara u mala slova (<code>hElLo</code> → <code>Hello</code>).
  
===Killing, yanking and regions===
+
===Ubijanje, yank-ovanje i regioni===
A region is a section of text between two positions. One of those positions is referred to as ''mark'', and the other is point. '''C-<SPC>''' is used to set the position of mark, after which point can be moved to create a region. Within GNU Emacs 23.1 onwards, this region is visible by default. There are a number of commands which act upon regions, among the most commonly used are ''killing'' commands.
+
Region je deo teksta izmedju dve pozicije. Jedna od ovih pozicija se naziva ''mark'', a drugi je tacka. '''C-<SPC>''' se koristi za zadavanje pocetne pozicije za markiranje, nakon cega tacka moze da se pomera da bi se kreirao region. U okviru GNU Emacs-a 23.1 pa na dalje, ovaj region je vidljiv prema pocetnim podesavanjima. Postoji veliki broj komandi koje deluju na regione, medju kojima se najvise koriste ''killing'' komande.
  
In Emacs, cut and paste are referred to as ''kill'' and ''yank'', respectively. Many commands which delete more than one character (including many of those in the above section, such as '''C-k''' and '''M-d''') actually cut the text and append it to what is known as the ''kill-ring''.  The kill-ring is simply a list of killed text. The kill-ring stores up to the last 60 kills by default. Successive kills are concatenated and stored at the head of the list.
+
U Emacs-u, cut i paste se nazivaju ''kill'' 'yank''. Mnoge komande koje brisu vise od jednog karaktera (ukljucujuci mnoge od onih vec naponenutih gore, poput '''C-k''' i '''M-d''') zapravo seku (cut-uju) tekst i dodaju ga na ono sto se zove "kill-ring''.  Kill-ring je, jednostavno, lista ubijenog teksta. Kill-ring skladisti do 60 zadnjih ubistava, prema pocenim podesavanjima.   Sukcesivna ubistva se skladiste na celo liste.
  
'''C-w''' and '''M-w''' can be used to kill and copy a region, respectively.
+
'''C-w''' i '''M-w''' se mogu koristiti za ubijanje i kopiranje regiona.
  
To insert killed text into a buffer (known as 'yanking'), use '''C-y'''.  '''C-y''' can be used multiple times in succession to yank text repeatedly. As mentioned, previous kills are stored in a list, however '''C-y''' only retrieves the first of them. The earlier kills can be accessed via '''M-y'''.  This will remove the text inserted by 'yank' initially, replacing it with the text killed earlier. '''M-y''' must be used immediately following '''C-y''' and can be used in many times succession to cycle through the kill-ring.
+
Za ubacivanje ubijenog teksta u bafer (poznato kao 'yank-ovanje'), upotrebite '''C-y'''.  '''C-y''' se moze koristiti vise puta ako zelite da yank-ujete tekst uzastopno. Kao sto smo pomenuli, prethodna ubistva su skladistena u listi, ipak '''C-y''' preuzima samo prvi od njih. Ranijim ubistvima se moze pristupiti sa '''M-y'''.  Ovo ce ukloniti tekst ubacen sa 'yank', i zameniti ga sa tekstom ubijenim ranije. '''M-y''' se mora upotrebiti odmah nakon '''C-y''' i moze se upotrebiti vise puta uzastopno da biste se kretali kroz kill-ring (ubistvo-prsten ma vazi).
  
===Search and replace===
+
===Pretrazi i zameni===
Searching for a string is common practise in text-editing. This can be performed using '''C-s''' (to search forward) or '''C-r''' (to search backward).  These commands prompt for the string for which to search. Searching is performed incrementally, and so it will match the next (or previous) occurrence as you type. To move to the next or previous match, press '''C-s''' or '''C-r''' again, respectivelyOnce a match has been found, '''<RET>''' can be used to end the search. Alternatively, should you wish to return to the location you initiated the search, use '''C-g'''.
+
Pretrazivanje za stringom je uobicajena praksa u tekst editovanju. Ovo se moze izvrsiti upotrebom '''C-s''' (da pretrazite unapred) ili '''C-r''' (da pretrazite unazad).  Ove komande upozoravaju za string za koji vrsite pretragu. Pretraga se vrsi inkrementalno, pa ce traziti sledecu (ili prethodnu) instancu kako budete pisali. Da predjete na sledecu ili prethodnu instancu, pritisnite '''C-s''' ili '''C-r''' opetKada je instanca pronadjena'''<RET>''' se moze upotrebiti da zavrsite pretragu. Alternativno, ukoliko zelite da se vratite na poziciju sa koje ste inicirali pretragu, upotrebite '''C-g'''.
  
Once a search is completed (i.e., was not aborted with '''C-g''' or similar), the string which was searched for will be the default for any following search. To make use of this, press '''C-s C-s''' or '''C-r C-r''' to search forward or backward again, respectively.
+
Kada je pretraga zavrsena (i.e., nije abortiran sa '''C-g''' ili slicno), string za kojim je vrsena pretraga ce biti difolt za sve naredne pretrage. Da iskoristite ovo, pritisnite '''C-s C-s''' ili '''C-r C-r''' da izvrsite opet pretragu unapred ili unazad.
  
Regular Expression searches behave identically to the searching described above except for the command to initiate the search. Use '''C-M-s''' or '''C-M-r''' to initiate a regexp search forward or backward, respectively. Once a Regular Expression search has commenced, '''C-s''' and '''C-r''' can be used to search forward or backward, just as with string searches.
+
Pregrage pomocu regularnih izraza se ponasaju isto kao i pretrage opisane gore izuzev komande koja se koristi za iniciranje pretrage. Upotrebite '''C-M-s''' ili '''C-M-r''' da inicirate regexp pretragu unapred ili unazad. Kada je pretraga pomocu regularnih izraza (Regular Expression) startovala, '''C-s''' i '''C-r''' se mogu koristiti da pretrazite unapred ili unazad, isto kao sa pretragom stringova.
  
In addition to searching, it is also possible to perform string and regular expression replacement (via '''M-%''' and '''C-M-%''', respectively).  Prompts are provided for both the initial and replacement text, and then another prompt for the action to perform on the highlighted match. Although many options are available (the full list is available by pressing '''?'''), the most commonly used are '''y''', to perform replacement, '''n''', to skip this match, and '''!''' to replace this, and all following matches.
+
Kao dodatak pretrazi, takodje je moguce vrsiti zamenu stringova i regularnih izraza (preko '''M-%''' i '''C-M-%''').  Upozoravanja su obezbedjena za oba, i inicijalni i tekst kojim vrsimo zamenu, a zatim jos jedno upozorenje koje nas pita koju akciju da izvrsimo na markiranu instancu. Iako je dostupan veliki broj opcija (cela lista je dostupna pritiskom na '''?'''), najcesce koriscena opcija je '''y''', za vrsenje zamene, '''n''', da preskocite ovu instancu, i '''!''' da zamenite ovu i sve ostale instance.
  
===Indentation and prefix arguments===
+
===Uvlake i prefiks argumenti===
Indentation is usually performed with either '''<TAB>''', to indent a single line, or with '''C-M-\''', to indent a region.
+
Uvlake se obicno postizu sa '''<TAB>''', za uvlacenje jedne linije, ili sa '''C-M-\''', da uvucete region.
  
Exactly how text is indented usually depends on the ''major-mode'' which is active.  Major-modes often define indentation styles specialising in indenting a certain type of text. (See [[Emacs#Modes|Modes]] for more information.)
+
Nacin na koji se tekst uvlaci obicno zavisi od ''major-mode''-a (glavni mod) koji je aktivan. Glavni mod obicno definise stil uvlacenja u zavisnosti od tipa teksta koji trenutno obradjujemo. (Pogledajte [[Emacs#Modes|Modove]] za vise informacija.)
  
In some cases, a suitable major-mode may not exist for a file type, in which case, manual indentation may be necessary. Create a region (see [[Emacs#Killing, yanking and regions|Killing, yanking and regions]]) then perform indentation with '''C-u <n> C-x <TAB>''' (where '<n>' is the number of columns which the text within the region should be indented). For example:
+
U nekim slucajevima moze da se desi odgovarajuci glavni-mod ne postoji za odredjeni tip fajla, i u tom slucaju je neophodno da rucno pravite uvlake. Napravite region (pogledajte [[Emacs#Killing, yanking and regions|Ubijanje, jankovanje i regioni]]) zatim izvrsite uvlacenje sa '''C-u <n> C-x <TAB>''' (gde je '<n>' iznos broja kolona od kojih ce se sastojati uvlaka). Na primer:
  
Increase the region's indentation by four columns:
+
Uvecajte uvlaku na regionu za cetiri kolone:
  
 
  C-u 4 C-x <TAB>
 
  C-u 4 C-x <TAB>
  
Decrease the region's indentation by two columns.
+
Smanjige uvlaku na regionu za dve kolone.
  
 
  C-u -2 C-x <TAB>
 
  C-u -2 C-x <TAB>
  
{{Note|The trick behind this is '''C-u''', which corresponds to the 'universal-argument' command. Providing a 'universal-argument' is a way to provide more information to a command (this information is referred to as a 'prefix argument'). In this case, we provided the amount of indentation desired to the command invoked by '''C-x <TAB>'''. Without providing an argument, '''C-x <TAB>''' will only increase indentation by 1 column.}}
+
{{Note|Trik je u '''C-u''', koji odgovara 'univerzalnom-argumentu' (unversal-argument) komandi. Zadavanje 'univerzalnog-argumenta' je nacin da prosledite vise informacija komandi (ova informacija se naziva 'prefiks argument'). U ovom slucaju, zadali smo broj kolona koji ce ciniti uvlaku koju zelimo da ostvarimo, i to sa komandom '''C-x <TAB>'''. Bez zadavanja prefiks argumenta, '''C-x <TAB>''' bi uvecao uvlaku za samo 1 kolonu.}}
  
===Windows and frames===
+
===Prozori i okviri===
Emacs is designed for convenient editing of many files at a time. This is achieved by dividing the Emacs interface into three levels. Namely, buffers, which have already been introduced, as well as ''windows'' and ''frames''.
+
Emacs je dizajniran za ugodno editovanje mnogih fajlova odjednom. To se postize razdvajanjem Emacs interfejsa na tri nivoa. Naime, baferi, koji su vec predstavljeni, kao i ''prozori'' i ''okviri''.
  
A ''window'' is a viewport used for displaying a buffer. A window can display only one buffer at a time, however one buffer can be displayed in many windows. Beneath each window exists a ''mode-line'', which displays information for that buffer.
+
''prozor'' pogled koji se koristi za prikazivanje bafera. Prozor moze da prikazuje samo jedan bafer u datom momentu, ali vise bafera moze biti prikazano u vise prozora. Iza svakog prozora postoji ''mode-line'' (mod linija), koja prikazuje informacije o tom baferu.
  
A ''frame'' is an Emacs "window" (in standard terminology. i.e., 'window' in the sense of the modern desktop paradigm) which contains a title bar, menu bar and one or more 'windows' (in Emacs terminology.  i.e., the above definition of 'window').
+
''frejm'' je Emacs-ov ''prozor'' (u standardnoj terminologiji. i.e., 'prozor' u smislu moderne desktop paradigme) koji sadrzi naslovnu traku (eng. title bar), meni liniju i jos jednu ili vise 'prozora'.
  
From now on the definition of these terms as they exist in Emacs will be used.
+
Od sada pa na dalje cemo koristiti definiciju ovih termina kao sto postoje u Emacs-u.
  
To split the window vertically or horizontally, use '''C-x 2''' or '''C-x 3''', respectivelyThis has the effect of creating another window in the current frame. To cycle between multiple windows, use '''C-x o'''.
+
Da podelite prozor vertikalno ili horizontalno, upotrebite '''C-x 2''' ili '''C-x 3'''.  Ovo ima efekat kreiranja jos jednog prozora u trenutnom ramu. Da prelazite izmedju vise prozora, upotrebite '''C-x o'''.
  
The opposite of splitting a window, is deleting it. To delete the current window, use '''C-x 0''' and '''C-x 1''' to delete all windows except the current.
+
Suprotno od deljenja prozora je njihovo brisanje. Da obrisete prozor u kom se trenutno nalazite, upotrebite '''C-x 0''' i '''C-x 1''' da obrisete sve prozore osim prozora u kom se trenutno nalazite.
  
As with windows, it is also possible to create and delete frames.  '''C-x 5 2''' creates a frame. With '''C-x 5 0''' to delete the current frame and '''C-x 5 1''' to delete all except the current frame.
+
Kao i kod prozora, takodje je moguce kreiranje i brisanje citavih ramova.  '''C-x 5 2''' kreira ram. Sa '''C-x 5 0''' mozete da obrisete trenutni ram, a '''C-x 5 1''' brise sve osim tekuceg rama.
  
{{Note|These commands do not affect buffers. For example, deleting a window does not kill the buffer it displays.}}
+
{{Note|Ove komande ne uticu na bafere. Naprimer, brisanje prozora ne ubija bafer koji on prikazuje.}}
  
===Getting help===
+
===Dobijanje pomoci===
Emacs is self-documenting by design. As such, a great deal of information is available to determine the name of a specific command or its keybinding, for example. The following is a listing of some of the most helpful of these:
+
Emacs je samo-dokumentovan po samom dizajnu. Shodno tome, velika kolicina informacija je dostupna za odredjivanje imena odgovarajuce komande ili njenih precica, naprimer. Sledeca lista prikazuje neke od najkorisnijih komandi za dobijanje pomoci:
  
  '''C-h t'''        Start the Emacs tutorial
+
  '''C-h t'''        Startovanje Emacs tutorijala
 
   
 
   
  '''C-h b'''       List all active keybindings
+
  '''C-h b'''       Lista precice na tastaturi za glavni mod koji trenutno koristimo
 
   
 
   
  '''C-h k'''        Find which command a key is bound to
+
  '''C-h k'''        Pronadji za koju je komandu vezan odredjeni taster
 
   
 
   
  '''C-h w'''        Find which key(s) a command is bound to
+
  '''C-h w'''        Pronadji na koji  taster je vezana odredjena komanda
 
   
 
   
  '''C-h a'''        Find a command matching a description
+
  '''C-h a'''        Pronadji komandu koja odgovara zadatom opisu
 
   
 
   
  '''C-h m'''        Display information regarding the currently active modes
+
  '''C-h m'''        Prikaz informacije o trenutno aktivnim modovima
 
   
 
   
  '''C-h f'''        Describe the given function
+
  '''C-h f'''        Opisuje zadatu funkciju
  
===Modes===
+
===Modovi===
An Emacs mode is an extension written in Emacs Lisp that controls the behaviour of the buffer it is attached to. Usually it provides indentation, syntax highlighting and keybindings for editing that form of text. Sophisticated modes can turn Emacs into a full-fledged IDE (Integrated Development Environment). Emacs will generally use a file's extension to determine which mode should be loaded.
+
Emacs mod je ekstenzija napisana u Emacs Lispu koji kontrolise ponsanje bafera za koji je vezan. Obicno pruza uvlake, isticanje sintakse i precice za editovanje tog oblika teksta. Sofisticirani modovi mogu da pretvore Emacs u punopravni IDE (integrisano okruzenje za programiranje). Emacs obicno koristi ekstenziju fajlova za odredjivanje modova koji ce biti ucitani.
  
Useful modes for editing shell scripts are sh-mode, line-number-mode and column-number-mode. They can be used in parallel and are invoked by:
+
Korisni modovi za editovanje shell skripti su sh-mode, line-number-mode i column-number-mode. Oni se mogu koristiti paralelno i pokrecu se sa.
  
 
'''M-x sh-mode <RET>'''
 
'''M-x sh-mode <RET>'''
Line 160: Line 160:
 
'''M-x column-number-mode <RET>'''
 
'''M-x column-number-mode <RET>'''
  
line-number-mode is enabled by default, though, it can be toggled on/off by issuing the command again:
+
line-number-mode je omogucen prema pocetnim podesavanjima, ali moze se upaliti/ugasiti ponovnim izdavanjem komande:
  
 
'''M-x line-number-mode <RET>'''
 
'''M-x line-number-mode <RET>'''
  
sh-mode is a ''major-mode''.  Major-modes adjust Emacs, and often also provide a specialised set of commands, for editing a particular type of text.  Only one major-mode can be active in each buffer. In addition to syntax highlighting, and indentation support, sh-mode defines several commands to help write shell scripts. The following shows a few of those commands:
+
sh-mode je ''glavni-mod'' (major-mode). Glavni modovi podesavaju Emacs i vrlo cesto pruzaju specijalizovani skup komandi za editovanje odredjenog tipa teksta. Samo jedan glavni mod moze biti aktivan u svakom od bafera. Kao dodatak isticanju sintakse i podrske za uvlake, sh-mode definise nekoliko komandi ciji je cilj da pomogne u editovanju shell skripti. Sledi nekoliko tih komandi:
  
  '''C-c (''' Insert a function definition
+
  '''C-c (''' Umetanje definicije funkcije
 
   
 
   
  '''C-c C-f''' Insert a 'for' loop
+
  '''C-c C-f''' Umetanje 'for' petlje
 
   
 
   
  '''C-c TAB''' Insert an 'if' statement
+
  '''C-c TAB''' Umetanje 'if' izjave
 
   
 
   
  '''C-c C-w''' Insert a 'while' loop
+
  '''C-c C-w''' Umetanje 'while' petlje
 
   
 
   
  '''C-c C-l''' Insert an indexed loop from 1 to n
+
  '''C-c C-l''' Umetanje indeksirane petlje od 1 do n
  
'line-number-mode' and 'column-number-mode', are ''minor-modes''.  Minor-modes can be used to extend a major-mode and any number of minor-modes can be enabled at once.
+
'line-number-mode' i 'column-number-mode', su ''manji-modovi'' (minor-modes).  Manji modovi mogu da se koriste za prosirivanje glavnih modova i mogu se koristiti u neogranicenom broju u datom trenutku.
  
==Tips and tricks==
+
==Saveti i trikovi==
While the previous sections has given an overview of the basic editing commands available, it has not given an indication of the possibilities of Emacs. This section will cover some more advanced techniques and functionality.
+
Dok je prethodna sekcija dala pregled osnovnih komandi za editovanje, nije predstavila mogucnosti Emacs-a. Sledeca sekcija ce pokriti neke od naprednijih tehnika i funkcionalnosti.
  
 
===TRAMP===
 
===TRAMP===
TRAMP (Transparent Remote Access, Multiple Protocols) is an extension which, as its name suggests, provides transparent access to remote files across a number of protocols. When prompted for a filename, entering a specific form will invoke TRAMP. Some examples:
+
TRAMP (Transparent Remote Access, Multiple Protocols) je ekstenzija koja, kao sto i ime sugerise, pruza transparentan pristup udaljenim fajlovima preko velikog broja protokola. Kada budete upitani za ime fajla, unosenjem odredjenog oblika cete pozvati TRAMP. Neki primeri:
  
To prompt for the root password before opening /etc/hosts with root permissions:
+
Da otvorite /etc/hosts sa root dozvolama:
  
 
  C-x C-f /su::/etc/hosts
 
  C-x C-f /su::/etc/hosts
  
To connect to 'myhost' as 'myuser' via SSH and open the file ~/example.txt:
+
Da se povezete na 'myhost' kao 'myuser' preko SSH-a i otvorite fajl ~/example.txt:
  
 
  C-x C-f /ssh:myuser@myhost:~/example.txt
 
  C-x C-f /ssh:myuser@myhost:~/example.txt
  
The path for TRAMP is typically of the form '/[protocol]:[[user@]host]:<file>'.  TRAMP supports much more than the examples above might indicate. For more information refer to the TRAMP info manual, which is distributed with Emacs.
+
Staza za TRAMP je obicno u formi '/[protokol]:[[user@]host]:<fajl>'.  TRAMP podrzava mnogo vise od primera navedenih gore. Za vise informacija pogledajte TRAMP info za korisnike koji dolazi uz Emacs.
  
===Keyboard macros and registers===
+
===Makroi sa tastature i registri===
This section will provide a practical demonstration of the use of a couple of more powerful editing features.  Namely, ''keyboard macros'' and ''registers''.
+
Ovaj deo ce pruziti prakticnu demonstraciju upotrebe nekoliko mocnijih metoda za editovanje, a to su ''makroi'' i ''registri''.
  
The aim will be to produce a listing of a series of characters and their corresponding position in this list. While it is possible to format each of them by hand, this would be slow and error-prone. Alternatively, some of Emacs' more powerful editing functionality could be leveraged. Before describing a solution, some details behind the techniques which will be used follow.
+
Cilj je da proizvedemo listing serije karaktera i njihove odgovarajuce pozicije u toj listi. Iako je moguce formatirati svaki od njih rucno, to bi bilo sporo i podlozno pravljenju gresaka. Alternativno, neke od Emacs-ovih mocnijih funkcionalnosti za editovanje se mogu upotrebiti. Pre opisa metode, navescemo neke detalje koji stoje iza tehnike.
  
The first feature which will be introduced is ''registers''. Registers are used to store and retrieve a variety of data types ranging from numbers to window configurations. Each register is given a name of a single character: this character is used to access the register.
+
Prva funkcija koju cemo predstaviti su ''registri''. Registri se koriste za skladistenje i preuzimanje raznih tipova podataka od brojeva do podesavanja za prozore. Svakom registru je dodeljeno ime jednog karaktera: ovaj karakter se koristi za pristupanje registru.
  
The other which will be demonstrated is ''keyboard macros''. A keyboard macro stores a sequence of commands so they can be easily repeated later.  These changes will now be performed step-by-step.
+
Druga funkcija koja ce biti demonstrirana su ''makroi sa tastature''. Makro sa tastature skladisti niz komandi kako bi mogli na lak nacin da se izvrse ponovo kasnije.
  
Starting with a buffer containing our set of characters:
+
Pocev od bafera koji sadrzi nas skup karaktera:
 
  ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
 
  ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  
Prepare a register by invoking the `number-to-register' command ('''C-x r n''') then storing the number '0' in register 'k':
+
Pripremite registar pokretanjem `number-to-register' komande ('''C-x r n'''), a zatim uskladistite broj '0' u registar 'k':
  
 
  C-x r n k
 
  C-x r n k
  
With point at the beginning of the buffer, start a keyboard macro ('''C-x (''') and begin to format the characters:
+
Sa kursorom na pocetku bafera, startujte makro ('''C-x (''') i krenite da formatirate karaktere:
  
 
  C-x ( C-f M-4 .
 
  C-x ( C-f M-4 .
  
Insert ('''C-x r i''') and increment ('''C-x r +''') the register 'k'. The prefix argument ('''C-u''') is used to leave point positioned after the inserted text:
+
Ubacite ('''C-x r i''') i inkrementirajte ('''C-x r +''') registar 'k'. Prefiks argument ('''C-u''') se kristi da ostavi pointer pozicioniran posle ubacenog teksta.
  
 
  C-u C-x r i k C-x r + k
 
  C-u C-x r i k C-x r + k
  
Complete the formatting by inserting a newline. Emacs can then repeat that process, beginning from the point where we started defining the keyboard macro, for the rest of the characters. '''C-x e''' completes then invokes the keyboard macro. The prefix argument, '''M-0''', causes the macro to repeat until it comes across an error. In this case it aborts once it reaches the end of the buffer.
+
Zavrsite formatiranje ubacivanjem nove linije. Emacs zatim moze da ponovi proces tako sto ce poceti od tacke gde ste poceli sa definisanjem makroa, za ostatak karaktera. '''C-x e''' kompletira, a zatim pokrece makro. Prefiks argument, '''M-0''', uzrokuje da makro bude ponovljen sve dok ne dodje do greske. U tom slucaju on prekida kada dostigne kraj bafera.
  
 
  <RET> M-0 C-x e
 
  <RET> M-0 C-x e
  
The result:
+
Rezultat:
  
 
   A....0
 
   A....0
Line 232: Line 232:
 
   z....51
 
   z....51
  
===Regular expressions===
+
===Regularni izrazi===
From the Emacs Manual: "A regular expression, or ''regexp'' for short, is a pattern that denotes a (possibly infinite) set of strings." This section will not go into any detail regarding regular expressions themselves (as there is simply too much to cover). It will however provide a quick demonstration of their power. See [http://www.gnu.org/software/emacs/manual/html_node/elisp/Regular-Expressions.html#Regular-Expressions Regular Expressions] section in the Emacs Manual for further reading.
+
Iz Emacs uputstva: "Regularni izraz, ili ''regexp'' skraceno, je model koji podrazumeva (moguce beskonacan) skup stringova." Ova sekcija nece ici u detalje o samim regularnim izrazima (jer, prosto, postoji previse toga da se pokrije). Pruzicemo brzu demonstraciju o moci regularnih izraza. Pogledajte [http://www.gnu.org/software/emacs/manual/html_node/elisp/Regular-ressions.html#Regular-Expressions Regularni izrazi] sekciju u Emacs uputstvu za vise informacija.
  
Given the same scenario presented above: A list of characters which are to be formatted to represent their respective position in the list. (see [[Emacs#Keyboard macros and registers|Keyboard macros and registers]]).  Again, starting with a buffer containing.
+
S obzirom na isti scenario predstavljen gore: Lista karaktera koji treba da bude formatiran tako da predstavljaju svoje mesto u listi. (pogledajte [[Emacs#Keyboard macros and registers|Makroi sa tastature i registri]]).  Opet, pocev sa sadrzajem bafera.
  
 
  ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
 
  ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
  
At the beginning of the buffer, use '''C-M-%''' (if the key-sequence is difficult to perform, it may be more comfortable to use '''M-x query-replace-regexp''').  At the prompt:
+
Na pocetku bafera, upotrebite '''C-M-%''' (ako vam je tesko da pritisnete skup tastera, upotrebite '''M- query-replace-regexp''').  Na liniji:
 
  \(.\)
 
  \(.\)
which simply matches one character. Then, when prompted for the replacement:
+
ch se poklapa sa jednim karakterom. Zatim, kada nas upozori za zamenu:
 
  \1....\#^J
 
  \1....\#^J
{{Note|'^J' represents where a newline should be placed, it should not be entered into the prompt. The newline must instead be inserted literally using '''C-q C-j'''.}}
+
{{Note|'^J' predstavlja mesto gde bi trebala da se stavi nova linija. Nebi trebala da se unosi u liniji. Nova linija mora biti uneta bukvalno upotrebom '''C-q C-j'''.}}
The replacement expression reads: "Insert the matched text between the first set of parentheses (in this case, a single character), followed by 4 periods then insert an automatically incremented number followed by a newline.
+
Izraz za zamnu kaze: "Ubacite tekst koji se podudara izmedju prvog skupa zagrada (u ovom slucaju, jedan karakter), praceno sa 4 zareza i zatim jedan automatski uvecan broj pracen sa novom linijom.
  
Finally, press '''!''' to apply this across the entire buffer. All of the formatting that was performed in the previous section was performed with a single regexp replacement.
+
Konacno, pritisnite '''!''' za y za ceo bafer. Sva formatiranja koja su izvrsena u prethodnoj sekciji si izvrsena sa jednim regexp-om.
  
===Customization===
+
===Prilagodjavanje===
Emacs can configured by editing '~/.emacs' or using '''M-x customize'''. This section will focus on editing ~/.emacs by hand, and provide some example customizations to demonstrate commonly-configured aspects of Emacs.  The customize command provides a simple interface to make adjustments, though it may become restricting as you grow more familiar with Emacs.
+
Emacs se moze podesavanjem editovanjem '~/.emacs' ili upotrebom komande '''M-x customize'''. Ova sekcija ce se fokusirati na rucno editovanje ~/.emacs, i pruziti neke primere za demonstraciju onih delova Emacs-a koji se obicno konfigurisu. Customize komanda pruza jednostavan interfejs za podesavanje, ali moze postati ogranicavajuce kako postajete upoznatiji sa Emacs-om.
  
All of the examples here can be performed while Emacs is running. To evaluate the expression within Emacs, use:
+
Svi primeri se mogu izvrsiti dok Emacs radi. Da evaluirate izjavu u Emacs-u, upotrebite:
  
'''C-M-x''' with point anywhere within the expression.
+
'''eval-buffer''' kao komandu ili,
  
or
+
'''C-x C-e''' da evaluirate zadnju izjavu
  
'''C-x C-e''' with point following the last ')'
+
Za neke korisnike, ukucavanje 'yes' i 'no' je zamorno. Da umesto toga koristite 'y' i 'n' tastere dodajte ovo u .emacs:
 
+
For some users, typing 'yes' and 'no' in prompts can quickly become tiring. To instead use the 'y' and 'n' keys at these prompts:
+
  
 
  (defalias 'yes-or-no-p 'y-or-n-p)
 
  (defalias 'yes-or-no-p 'y-or-n-p)
  
To stop the cursor blinking, use:
+
a zatim izvrsite '''eval-buffer''' u .emacs baferu.
 +
 
 +
Da zaustavite kursor upotrebite:
  
 
  (blink-cursor-mode -1)
 
  (blink-cursor-mode -1)
  
Similarly, to enable column-number-mode, as discussed in the previous section:
+
Slicno, da omogucite column-number-mode, kao sto je diskutovano u prethodnom delu:
  
 
  (column-number-mode 1)
 
  (column-number-mode 1)
  
The similarities between the previous two commands are not a coincidence: blink-cursor-mode and column-number-mode are both minor-modes. As a rule, minor-modes can be enabled given positive argument or disabled with a negative argument. Should the argument be omitted, the minor-mode will be toggled on/off.
+
Slicnosti izmedju prethodne dve komande nisu slucajnost: blink-cursor-mode i column-number-mode su oba minor-modovi. Kao pravilo, manji modovi se mogu upaliti zadavanjem pozitivnog argumenta ili ugasiti sa negativnim argumentom. Ako se argument izostavi, manji mod ce biti naizmenicno zamenjen upaljen/ugasen.
  
Here are some more examples of minor-modes. The following will disable the scroll bars, menu-bar and tool-bar, respectively.
+
Evo jos dodatnih primera manjih modova. Sledeci ce onemoguciti trake za skrolovanje, meni liniju i liniju za alatke.
  
 
  (scroll-bar-mode -1)
 
  (scroll-bar-mode -1)
Line 279: Line 279:
 
  (tool-bar-mode -1)
 
  (tool-bar-mode -1)
  
The variable, 'auto-mode-alist', can be modified to change the major-mode used by default for certain file names. The following example will make the default major-mode for '.tut' and '.req' files 'text-mode'.
+
Varijabla, 'auto--alist', se moze modifikovati da promeni glavni mod koji se koristi za odredjena imena fajlova. Sledeci primer ce napraviti difolt glavni mod za '.tut' i '.req' fajlove 'text-mode'.
  
  (setq auto-mode-alist
+
  (setq auto-mode-
   (append
+
   (
     '(("\\.tut$" . text-mode)
+
     '(("\\.tut$" . text-e)
       ("\\.req$" . text-mode))
+
       ("\\.req$" . text-e))
 
     auto-mode-alist))
 
     auto-mode-alist))
  
Settings can also be applied on a per-mode basis. A common method for this is to add a function to a ''hook''. For example, to force indentation to use spaces instead of tabs, but only in text-mode:
+
Podesavanja se takodje mogu primeniti na nivou modova. Uobicajena metoda za ovo je dodavanje funkcije ''hook''. Naprimer, da forsirate uvlake da koriste razmake umesto tabova, ali samo u text-mode:
  
  (add-hook 'text-mode-hook (lambda () (setq indent-tabs-mode nil)))
+
  (add-hook 'text-mode-ook (lambda () (setq indent-tabs-mode nil)))
  
Similarly, to only use spaces for indentation everywhere:
+
Slicno, da samo koristite razmake za uvlake bilo gde:
  
  (set-default indent-tabs-mode nil)
+
  (set-default indent--mode nil)
  
Keybindings can be adjusted in two ways. The first of which is 'define-key'.  'define-key' creates a keybinding for a command but only in one mode. The example below will make '''F8''' delete any whitespace from the end of each line of a 'text-mode' buffer:
+
Precice na tastaturi se mogu podesiti na dva nacina. Prvi je pomocu 'define-key'.  'define-key' pravi precicu za komandu ali samo u jednom modu. Primer ispod ce napraviti da '''F8''' brise sve prazne prostore od kraja svake linije u 'text-mode' baferu:
  
 
  (define-key text-mode-map (kbd "<f8>") 'delete-trailing-whitespace)
 
  (define-key text-mode-map (kbd "<f8>") 'delete-trailing-whitespace)
  
The other method is 'global-set-key'. This is used to bind a key to a command everywhere. To bind 'query-replace-regexp' ('''C-M-%''') to '<f7>'.
+
Drugi metod je 'global-set-key'. Ovo se koristi za bindovanje tastera na komandu bilo gde. Da bindujete 'query-replace-regexp' ('''C-M-%''') na '<f7>'.
  
  (global-set-key (kbd "<f7>") 'query-replace-regexp)
+
  (global-set-key (kbd "<7>") 'query-replace-regexp)
  
Binding a command to an alternate key does not replace any existing bindings. Which is to say, 'query-replace-regexp' would be bound to both '''F7''' and '''C-M-%''' after the above example.
+
Bindovanje komande na alternativni taster ne zamenjuje vec postojece bindove. Ukratko, 'query-replace-regexp' ce biti zdruzen sa obe precice '''F7''' i '''C-M-%''' nakon gornjeg primera.
  
Almost anything within Emacs can be configured. Browsing through the [http://emacswiki.org/ Emacs Wiki] should give a solid place to start.
+
Skoro sve u Emacs-u se moze podesiti. Pretrazivanje [http://emacswiki.org/ Emacs Wiki] ce vam dati solidno mesto za start.
  
=== Extensions ===
+
===Ekstenzije===
  
While Emacs includes hundreds modes, libraries and other extensions, there are many more available to further Emacs' capabilities. The majority of these come with instructions detailing any changes needed to be made to ~/.emacs. These instructions are generally found in the comment block at the beginning of an elisp source file, or in a README (or similar) should the extension consist of multiple source files.
+
I pored toga sto Emacs sadrzi stotine modova, biblioteka i drugih ekstenzija, postoji jos dostupnih za dalje prosirenje Emacs-ovih sposobnosti. Vecina njih dolazi sa instrukcijama koje opisuju sve izmene koje je neophodno izvrsiti u ~/.emacs fajlu. Ove instrukcije se generalno mogu naci u delu sa komentarima na pocetku elisp sors koda, ili u README (ili slicno) fajlu u slucaju da ekstenzija sadrzi vise sors fajlova.
  
A number of popular extensions are available as packages in the 'community' repository, and more still are available via the [[AUR]].  The name of such packages have a 'emacs-' prefix (for example, emacs-lua-mode). In many cases, the changes which need to be made to ~/.emacs are shown during the installation of the package.
+
Veliki broj popularnih ekstenzija su dostupni kao paketi u 'community' repozitorijumu, a jos dosta je dostupno preko [[AUR]]-a. Imena tih paketa imaju 'emacs-' prefiks (naprimer, emacs-lua-mode). U mnogo slucajeva, izmene koje moraju da se izvrse na ~/.emacs se prikazu tokom instalacije paketa.
  
Should instructions describing how to activate a specific extension not be available in the aforementioned location(s), check for a corresponding page in the [http://emacswiki.org/ Emacs Wiki], which will almost certainly provide an example configuration. The Emacs Wiki is also an excellent resource for discovering even more extensions.
+
Ukoliko se desi da instrukcije za aktiviranje odredjene ekstenzije nisu dostupne u gore napomenutim lokacijama, proverite odgovarajucu stranicu u [http://emacswiki.org/ Emacs Wiki], koja ce skoro sigurno obezbediti primer podesavanja. Emacs Wiki je isto poznat kao izvor  za otkrivanje jos dodatnih ekstenzija.
  
You can also use the [http://tromey.com/elpa/ Emacs Lisp Package Archive (ELPA)] to automatically install packages. See the website for instructions. ELPA will be included with Emacs 24 (the next version of Emacs); it is an accepted part of the Emacs ecosystem.
+
Takodje mozete da upotrebite [http://tromey.com/elpa/ Emacs Lisp Paket Arhiva (ELPA)] da automatski instalirate pakete. Pogledajte web sajt za instrukcije. ELPA ce biti sadrzan u Emacs 24 (sledeca verzija Emacs-a); to je prihvacen deo Emacs ekosistema.
  
== Troubleshooting ==
+
==Resavanje problema==
  
===Colored output issues===
+
===Problemi sa obojenim izlazom===
By default, the Emacs shell will show raw escape sequences used to print colors. In other words, it will display strange symbols in place of the desired colored output.
+
Prema pocetnim podesavanjima, Emacs shell ce prikazati cudne simbole umesto zeljenog izlaza.
  
Including the following into {{Filename|~/.emacs}} amends the problem:
+
Ubacivanjem sledeceg u {{ic|~/.emacs}} resava problem:
  (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
+
  (add-hook 'shell-mode-ook 'ansi-color-for-comint-mode-on)
  
===Menus appear empty===
+
===Meniji se prikazuju kao prazni===
A bug exists in GNU Emacs 23.1 (using the GTK toolkit) which may cause some menus to appear empty. This appears to be fixed in Emacs' CVS trunk. The corresponding [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=550541 Debian bug report] contains a workaround.
+
Postoji bag u GNU Emacs-u 23.1 (ako koristite GTK skup alata) koji moze prouzrokovati da neki meniji budu prazni. Ovo je, izgleda, reseno u Emacs CVS stablu. [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=550541 Debian bag izvestaj] sadrzi resenje.
  
=== Problems displaying characters in X Windows ===
+
===Problemi sa prikazivanjem karaktera u X prozorima===
If when you start emacs in X windows all the characters in the main window are white boxes with black borders (the ones you see if you try to view characters for which you do not have the correct font installed), you need to install xorg-fonts-75dpi and/or xorg-fonts-100dpi and restart X windows.
+
Ako su, kada startujete emacs u X prozorima, svi karakteri u glavnom prozoru sa belim granicama (one koje vidite kada probate da vidite karaktere za koje nemate instalirane odgovarajuce fontove), neophodno je da instalirate xorg-fonts-75dpi i/ili xorg-fonts-100dpi i da restartujete X prozore.
  
=== Slow startup ===
+
===Sporo startovanje===
Slow startup times are often caused by one of two things.
+
Sporo startovanje obicno iz dva razloga.
  
To determine which it might be, run Emacs with:
+
Da odredite koji bi mogao da bude, pokrenite Emacs sa:
  
 
  $ emacs -q
 
  $ emacs -q
  
If Emacs still starts slowly, refer to [[Emacs#Incorrect network configuration|Incorrect network configuration]].  If not, it is almost certainly a [[Emacs#Init file loads slowly|problem in your .emacs]].
+
Ako Emacs i dalje startuje sporo, pogledajte [[Emacs#Incorrect network configuration|Neispravno podesavanje mreze]].  Ako ne, skoro je sigurno [[Emacs#Init file ads slowly|problem u vasem .emacs]].
  
====Incorrect network configuration====
+
====Netacno podesavanje mreze====
  
Mistakes, particularly in /etc/hosts, will often result in a 5+ second delay when starting Emacs. Refer to '[[Configuring_network#Set_the_hostname|set the hostname]]' in the network configuration guide for information.
+
Greske, obicno u /etc/hosts, ce obicno rezultirati sa 5+ sekundi kasnjenja prilikom startovanja Emacs-a. Pogledajte '[[Configuring_network#Set_the_hostname|podesite ime hosta]]' uputstvo za podesavanje mreze za vise informacija.
  
====Init file loads slowly====
+
====Opterecenje init fajla====
  
A simple way to search for the cause is to comment-out (i.e., prefix lines with ';') suspect sections of your ~/.emacs (or ~/.emacs.d/init.el) then start Emacs again to see if there's any change. Keep in mind use of "require" and "load" can slow the startup down, especially when used with larger extensions. They should, as a rule, only be used when their target is either: needed once Emacs starts or provides little more than "autoloads" for an extension. Otherwise, use the 'autoload function directly. For example, instead of:
+
Jednostavan nacin da pronadjete uzrok je da stavite pod komentar (dodate kao prefiks liniji ';') na sumnjive delove vaseg ~/.emacs -a (ili ~/.emacs.d/init.el), a zatim da startujete Emacs ponovo da vidite da li ima promena. Imajte na umu da "require" i "load" mogu da uspore startovanje, posebno kada se koriste sa ekstenzijama. Njih treba, po pravilu, koristiti samo kad je njihov cilj: da budu u upotrebi odma po startovanju Emacs-a ili pruzaju malo vise od "ucitavanja" za ekstenziju. U suprotnom, koristite 'autoload funkciju direktno. Naprimer, umesto:
  
 
  (require 'anything)
 
  (require 'anything)
  
you might use:
+
mozete da upotrebite:
  
  (autoload 'anything "anything" "Select anything" t)
+
  (autoload 'anything "thing" "Select anything" t)
  
=== Cannot open load file: ... ===
+
===Cannot open load e: ...===
  
The most common cause of this error is the 'load-path' variable not including the path to the directory within which the extension is located. To solve this, add the appropriate path to the list to be searched prior to attempting to load the extension:
+
Najcesci uzrok ove greske je 'load-path' varijabla koja ne sadrzi stazu do direktorijuma u kom se ekstenzija nalazi. Da resite to, dodajte odgovarajucu stazu u listu koja ce biti pretrazena pre ucitavanja ekstenzije:
  
 
   (add-to-list 'load-path "/path/to/directory/")
 
   (add-to-list 'load-path "/path/to/directory/")
  
When attempting to use packages for extensions and Emacs has been configured with a prefix other than '/usr', the load-path will need to be updated. Place the following in ~/.emacs prior to the instructions provided by the package:
+
Kada pokusavate da koristite pakete za ekstenzije i Emacs je podesen sa prefiksom drugim nego '/usr', load-path ce morati da bude osvezen. Stavite sledece u ~/.emacs pre instrukcija koja dolaze uz paket:
  
 
   (add-to-list 'load-path "/usr/share/emacs/site-lisp")
 
   (add-to-list 'load-path "/usr/share/emacs/site-lisp")
  
If compiling Emacs by hand, keep in mind that the default prefix is '/usr/local'.
+
Ako rucno kompajlirate Emacs, imajte na umu da je difolt prefiks '/usr/local'.
  
== Resources ==
+
==Izvori==
* [http://www.gnu.org/software/emacs/ GNU Emacs home page]
+
* [http://www.gnu.org/ftware/emacs/ GNU Emacs home stranica]
* [http://www.gnu.org/software/emacs/manual/emacs.html GNU Emacs Manual]
+
* [http://www.gnu.org/ftware/emacs/manual/emacs.html GNU Emacs uputsvo]
 
* [http://www.emacswiki.org/cgi-bin/wiki/ Emacs Wiki]
 
* [http://www.emacswiki.org/cgi-bin/wiki/ Emacs Wiki]
* [http://www2.lib.uchicago.edu/keith/tcl-course/emacs-tutorial.html Useful introduction to Emacs and its shortcuts]
+
* [http://www2.lib.go.edu/keith/tcl-course/emacs-tutorial.html Korisno uvod u Emacs i njegove precice]
* [http://www.dina.kvl.dk/~abraham/religion/ The Church of Emacs]
+
* [http://www.dina.kvl./~abraham/religion/ Emacs crkva]

Revision as of 10:55, 13 June 2012

Summary help replacing me
Uputstvo za instaliranje i upotrebu Emacs tekst editora.

Emacs je prosiriv, prilagodljiv, samo-dokumentovan editor koji radi u realnom vremenu. U srzi Emacs-a lezi Emacs Lisp interpreter, jezik u kom je vecina Emacs-ove funkcionalnosti i ekstenzija implementirano. GTK je osnovni X skup alata koji koristi GNU Emacs 22, ali on i dalje funkcionise odlicno i u CLI (komandna linija) okruzenju. Emacs kapaciteti za tekst editovanje se obicno porede sa vim-ovim.

Instalacija

Emacs dolazi u nekoliko varijacija (ponekad se naziva emacsen). Najzastupljeniji od ovih je GNU Emacs koji moze da se instalira (kao root) preko:

# pacman -S emacs

Druga uobicajena varijacija je xemacs, koji je takodje dostupan za instalaciju preko pakmena.

Brzi start

Iako je Emacs kompleksan, nece proci puno vremena pre nego sto pocnete da shvatate koristi koje nivo prilagodljivosti i prosirivosti donosi. Stavise, sveobuhvatna raznolikost dodataka (ekstenzija) koje su vec dostupne pruzaju mogucnost transformacije u mocno okruzenje za skoro svaki oblik tekst editovanja.

Emacs ima odlican ugradjen tutorijal kom se moze pristupiti klikom na prvi link na sples ekranu (pocetni ekran prilikom paljenja Emacs-a); selektovanjem Help->Emacs Tutorial iz menija ili pritiskanjem 'F1' praceno sa 't'. Ova stranica je napravljena s ciljem da bude dodatni izvor za startovanje sa Emacs-om.

Emacs takodje sadrzi skup referentnih kartica, korisnih za pocetnike i eksperte, pogledajte /usr/share/emacs/<version>/etc/refcards/ (zamenite <version> sa vasom verzijom emacs-a).

Pokretanje Emacs-a

Da startujete Emacs izvrsite:

$ emacs

ili, da ga koristite iz konzole:

$ emacs -nw

Mozete da dodate ime fajla da bi ste odmah otvorili taj fajl:

$ emacs filename.txt

Osnovna terminologija i konvencija

Emacs korisnici koriste terminologiju i konvencije koje mogu delovati neobicno u pocetku i zbog toga cemo ih predstavljati kako budu nailazile redom. Ipak, postoji deo terminologije koju treba predstaviti odmah, jer je od vitalnog znacaja za rad sa Emacs-om.

Deo terminologije koju je neophodno odmah predstaviti je koncept bafera. Bafer predstavlja podatke u okviru Emacs-a. Na primer, kada je fajl otvoren u Emacs-u, taj fajl je iscitan sa diska i njegov sadrzaj je skladisten u baferu, koji pruza mogucnost njegovog editovanja i cuvanja nazad na disk kasnije. Baferi nisu ograniceni na tekst i mogu da sadrze i slike i dodatke. Drugi nacin da razmisljate o tome: podaci dostupni na disku se nazivaju 'fajl', dok podaci dostupni u Emacs-u se nazivaju 'bafer' (eng. buffer).

Konvencija za imenovanje tastera u Emacs-u ce vam najverovatnije biti nepoznata.

C-x se odnosi na Control-x

M-x se odnosi na Meta-x

Note: 'Meta' odgovara Alt tasteru u vecini slucajeva. Alternativno moze da se koristi Esc taster.

Na primer, za izlazak iz Emacs-a se koristi sledeca sekvenca: C-x C-c. Ovo moze da se procita kao "Drzi kontrol i pritisni 'x'. Pusti. Drzi kontrol i pritisni 'c'." Iako Emacs pruza meni liniju, preporucljiva praksa je da se fokusira na ucenje taster sekvenci. Ovo uputstvo ce koristiti imena skracenica prema konvenciji koja se koristi u Emacs-u.

Pokretanje

Pomeranje kursora je slicno kao i u drugim grafickim editorima. Mis i tasteri sa strelicama mogu da se koriste za promenu pozicije kursora (naziva se kao point u Emacs-u). Standardne komande za kretanje koje se vrsi pomocu tastera sa strelicama takodje imaju pristupacnije skracenice u Emacs-u. Da se pomerite napred jedan karakter, upotrebite C-f, da se pomerite jedan karakter unazad, C-b. C-n i C-p se mogu upotrebiti za pomeranje na sledecu i prethodnu liniju, redom. Opet, generalno se preporucuje upotreba ovih precica u odnosu na mis ili tastere sa strelicama.

Kao sto se moze ocekivati, Emacs pruza naprednije komande za kretanje, ukljucujuci kretanje po rec i recenicu. M-f pomera napred jednu rec i M-b ce pomeriti kursor jednu rec unazad. Slicno, M-e pomera kursor jednu recenicu napred i M-a jednu recenicu nazad.

Do sada, sve komande za kretanje koje su predstavljene su bile relativne u odnosu na trenutnu poziciju. M-< se moze koristiti za pomeranje kursora na pocetak bafera, sa svojim kolegom, M->, koji vrsi pomeranje na kraj bafera. Da pomerite kursor na odredjeni broj linije, upotrebite M-g g. M-g g ce vas upozoriti za zeljeni broj linije. Takodje, da se pomerite na pocetak ili kraj tekuce linije, upotrebite C-a ili C-e.

Note: Skracenice za ove komande, ili bilo koju komandu, se mogu razlikovati blago u zavisnosti od modova koji su trenutno aktivni. Ipak, te skracenice u najvecem broju slucajeva pruzaju jednaku funkcionalnost. Pogledajte Modes za vise informacija.

Fajlovi i baferi

Emacs pruza seriju komandi koje se primenjuju na fajlove. O najzastupljenijoj komandi ce biti vise detalja ovde. C-x C-f se koristi za otvaranje fajla (ova komanda se zove 'find-file' u Emacs-u). Ukoliko zadati fajl ne postoji, Emacs ce otvoriti prazan bafer. Cuvanje bafera ce kreirati fajl sa sadrzajem bafera. C-x C-s se moze koristiti za cuvanje bafera. Da sacuvate bafer sa razlicitim imenom fajla, upotrebite C-x C-w (ovo je mnemonika za komandu 'write-file'), koja ce upozoriti za novo ime fajla pre njegovog zapisivanja na disk. Takodje je moguce sacuvati sve trenutno otvorene bafere sa C-x s. Zadavanjem ove komande, ukoliko su baferi menjani od poslednjeg cuvanja, dobicete upozorenje koje ce vas pitati koju akciju zelite da sprovedete.

Note: C-x C-f ne cita opet fajl sa diska ako je bafer koji odgovara fajlu i dalje otvoren. Da ponovo iscitate fajl sa diska, ubite bafer (C-x k) pre C-x C-f ili upotrebite M-x revert-buffer.

Mnoge interaktivne komande poput "find-file" ili "write-file" daju upozorenje za unos u skroz donjoj liniji Emacs prozora. Ova linija se naziva minibuffer. Minibafer podrzava mnoge osnovne komande za editovanje kao i tab dovrsavanje komandi. Slicno onom koje je dostupno u mnogim *nix komandnim linijama. <TAB> se moze pritisnuti dva puta uzastopno za prikaz liste kompletnih komandi, i ako zelite, mozete da upotrebite mis da selektujete kompletnu komandu sa te liste. Kompletiranje u minibaferu je dostupno za mnoge forme unosa ukljucujuci komande i imena fajlova.

Minibafer takodje pruza mogucnost pracenja istorije. Prethodne unesene komande se mogu ponovo pozvati upotrebom Up Arrow ili C-p.

Da izadjete iz minibafera u bilo kom momentu, pritisnite C-g.

Nakon otvaranja nekoliko fajlova, metod za prelazak izmedju njih je neophodan. Otvaranjem fajla koji vec ima svoj bafer u okviru Emacs-a ce prouzrokovati prelazak na taj bafer. Ovo nije najefikasniji nacin. Emacs pruza C-x b, koji upozorava za prikaz novog bafera (tab kompletiranje je dostupno). Unosom imena bafera koje ne postoji, novi bafer sa tim imenom ce biti napravljen.

Note: Da predjete na prethodni bafer, upotrebite C-x b <RET>.

Lista svih otvorenih bafera se moze prikazati upotrebom C-x C-b. Ako bafer vise nije potreban, moze se ukloniti sa C-x k.

Editovanje

Postoji veliki broj komandi za editovanje u okviru Emacs-a. Najbitnija komanda je verovatno ona koju jos nismo predstavili, a to je 'undo', koja se moze pokrenuti sa C-_ ili C-/. Komande za kretanje generalno takodje imaju odgovarajuce komande za brisanje. Na primer, M-<backspace> se moze koristiti za brisanje reci unazad, i M-d za brisanje reci unapred. Da obrisete do kraja linije, ili kraj recenice, upotrebite C-k ili M-k.

Osnovno je pravilo da ni jedna linija ne treba da prelazi 80 karaktera. Ovo doprinosi citljivosti, pogotovo u slucajevima gde linija obavija na ivici prozora. Automatsko ubacivanje (ili uklanjanje) linije za razdvajanje je poznato kao filling u Emacs-u. Paragraf moze biti popunjen upotrebom M-q.

Karakteri i reci mogu biti transponovani koriscenjem C-t i M-t. Naprimer: Hello World!World! Hello

Velika i mala slova su takodje podesiva. M-l prebacuje u mala slova sledecu rec od kursora (HELLOhello); M-u prebacuje u velika slova sledecu rec od kursora (helloHELLO) i M-c pretvara prvi karakter sledece reci od kursora u veliko slovo, dok ostale karaktere pretvara u mala slova (hElLoHello).

Ubijanje, yank-ovanje i regioni

Region je deo teksta izmedju dve pozicije. Jedna od ovih pozicija se naziva mark, a drugi je tacka. C-<SPC> se koristi za zadavanje pocetne pozicije za markiranje, nakon cega tacka moze da se pomera da bi se kreirao region. U okviru GNU Emacs-a 23.1 pa na dalje, ovaj region je vidljiv prema pocetnim podesavanjima. Postoji veliki broj komandi koje deluju na regione, medju kojima se najvise koriste killing komande.

U Emacs-u, cut i paste se nazivaju kill i 'yank. Mnoge komande koje brisu vise od jednog karaktera (ukljucujuci mnoge od onih vec naponenutih gore, poput C-k i M-d) zapravo seku (cut-uju) tekst i dodaju ga na ono sto se zove "kill-ring. Kill-ring je, jednostavno, lista ubijenog teksta. Kill-ring skladisti do 60 zadnjih ubistava, prema pocenim podesavanjima. Sukcesivna ubistva se skladiste na celo liste.

C-w i M-w se mogu koristiti za ubijanje i kopiranje regiona.

Za ubacivanje ubijenog teksta u bafer (poznato kao 'yank-ovanje'), upotrebite C-y. C-y se moze koristiti vise puta ako zelite da yank-ujete tekst uzastopno. Kao sto smo pomenuli, prethodna ubistva su skladistena u listi, ipak C-y preuzima samo prvi od njih. Ranijim ubistvima se moze pristupiti sa M-y. Ovo ce ukloniti tekst ubacen sa 'yank', i zameniti ga sa tekstom ubijenim ranije. M-y se mora upotrebiti odmah nakon C-y i moze se upotrebiti vise puta uzastopno da biste se kretali kroz kill-ring (ubistvo-prsten ma vazi).

Pretrazi i zameni

Pretrazivanje za stringom je uobicajena praksa u tekst editovanju. Ovo se moze izvrsiti upotrebom C-s (da pretrazite unapred) ili C-r (da pretrazite unazad). Ove komande upozoravaju za string za koji vrsite pretragu. Pretraga se vrsi inkrementalno, pa ce traziti sledecu (ili prethodnu) instancu kako budete pisali. Da predjete na sledecu ili prethodnu instancu, pritisnite C-s ili C-r opet. Kada je instanca pronadjena<RET> se moze upotrebiti da zavrsite pretragu. Alternativno, ukoliko zelite da se vratite na poziciju sa koje ste inicirali pretragu, upotrebite C-g.

Kada je pretraga zavrsena (i.e., nije abortiran sa C-g ili slicno), string za kojim je vrsena pretraga ce biti difolt za sve naredne pretrage. Da iskoristite ovo, pritisnite C-s C-s ili C-r C-r da izvrsite opet pretragu unapred ili unazad.

Pregrage pomocu regularnih izraza se ponasaju isto kao i pretrage opisane gore izuzev komande koja se koristi za iniciranje pretrage. Upotrebite C-M-s ili C-M-r da inicirate regexp pretragu unapred ili unazad. Kada je pretraga pomocu regularnih izraza (Regular Expression) startovala, C-s i C-r se mogu koristiti da pretrazite unapred ili unazad, isto kao sa pretragom stringova.

Kao dodatak pretrazi, takodje je moguce vrsiti zamenu stringova i regularnih izraza (preko M-% i C-M-%). Upozoravanja su obezbedjena za oba, i inicijalni i tekst kojim vrsimo zamenu, a zatim jos jedno upozorenje koje nas pita koju akciju da izvrsimo na markiranu instancu. Iako je dostupan veliki broj opcija (cela lista je dostupna pritiskom na ?), najcesce koriscena opcija je y, za vrsenje zamene, n, da preskocite ovu instancu, i ! da zamenite ovu i sve ostale instance.

Uvlake i prefiks argumenti

Uvlake se obicno postizu sa <TAB>, za uvlacenje jedne linije, ili sa C-M-\, da uvucete region.

Nacin na koji se tekst uvlaci obicno zavisi od major-mode-a (glavni mod) koji je aktivan. Glavni mod obicno definise stil uvlacenja u zavisnosti od tipa teksta koji trenutno obradjujemo. (Pogledajte Modove za vise informacija.)

U nekim slucajevima moze da se desi odgovarajuci glavni-mod ne postoji za odredjeni tip fajla, i u tom slucaju je neophodno da rucno pravite uvlake. Napravite region (pogledajte Ubijanje, jankovanje i regioni) zatim izvrsite uvlacenje sa C-u <n> C-x <TAB> (gde je '<n>' iznos broja kolona od kojih ce se sastojati uvlaka). Na primer:

Uvecajte uvlaku na regionu za cetiri kolone:

C-u 4 C-x <TAB>

Smanjige uvlaku na regionu za dve kolone.

C-u -2 C-x <TAB>
Note: Trik je u C-u, koji odgovara 'univerzalnom-argumentu' (unversal-argument) komandi. Zadavanje 'univerzalnog-argumenta' je nacin da prosledite vise informacija komandi (ova informacija se naziva 'prefiks argument'). U ovom slucaju, zadali smo broj kolona koji ce ciniti uvlaku koju zelimo da ostvarimo, i to sa komandom C-x <TAB>. Bez zadavanja prefiks argumenta, C-x <TAB> bi uvecao uvlaku za samo 1 kolonu.

Prozori i okviri

Emacs je dizajniran za ugodno editovanje mnogih fajlova odjednom. To se postize razdvajanjem Emacs interfejsa na tri nivoa. Naime, baferi, koji su vec predstavljeni, kao i prozori i okviri.

prozor pogled koji se koristi za prikazivanje bafera. Prozor moze da prikazuje samo jedan bafer u datom momentu, ali vise bafera moze biti prikazano u vise prozora. Iza svakog prozora postoji mode-line (mod linija), koja prikazuje informacije o tom baferu.

frejm je Emacs-ov prozor (u standardnoj terminologiji. i.e., 'prozor' u smislu moderne desktop paradigme) koji sadrzi naslovnu traku (eng. title bar), meni liniju i jos jednu ili vise 'prozora'.

Od sada pa na dalje cemo koristiti definiciju ovih termina kao sto postoje u Emacs-u.

Da podelite prozor vertikalno ili horizontalno, upotrebite C-x 2 ili C-x 3. Ovo ima efekat kreiranja jos jednog prozora u trenutnom ramu. Da prelazite izmedju vise prozora, upotrebite C-x o.

Suprotno od deljenja prozora je njihovo brisanje. Da obrisete prozor u kom se trenutno nalazite, upotrebite C-x 0 i C-x 1 da obrisete sve prozore osim prozora u kom se trenutno nalazite.

Kao i kod prozora, takodje je moguce kreiranje i brisanje citavih ramova. C-x 5 2 kreira ram. Sa C-x 5 0 mozete da obrisete trenutni ram, a C-x 5 1 brise sve osim tekuceg rama.

Note: Ove komande ne uticu na bafere. Naprimer, brisanje prozora ne ubija bafer koji on prikazuje.

Dobijanje pomoci

Emacs je samo-dokumentovan po samom dizajnu. Shodno tome, velika kolicina informacija je dostupna za odredjivanje imena odgovarajuce komande ili njenih precica, naprimer. Sledeca lista prikazuje neke od najkorisnijih komandi za dobijanje pomoci:

C-h t        Startovanje Emacs tutorijala

C-h b       Lista precice na tastaturi za glavni mod koji trenutno koristimo

C-h k        Pronadji za koju je komandu vezan odredjeni taster

C-h w        Pronadji na koji  taster je vezana odredjena komanda

C-h a        Pronadji komandu koja odgovara zadatom opisu

C-h m        Prikaz informacije o trenutno aktivnim modovima

C-h f        Opisuje zadatu funkciju

Modovi

Emacs mod je ekstenzija napisana u Emacs Lispu koji kontrolise ponsanje bafera za koji je vezan. Obicno pruza uvlake, isticanje sintakse i precice za editovanje tog oblika teksta. Sofisticirani modovi mogu da pretvore Emacs u punopravni IDE (integrisano okruzenje za programiranje). Emacs obicno koristi ekstenziju fajlova za odredjivanje modova koji ce biti ucitani.

Korisni modovi za editovanje shell skripti su sh-mode, line-number-mode i column-number-mode. Oni se mogu koristiti paralelno i pokrecu se sa.

M-x sh-mode <RET>

M-x column-number-mode <RET>

line-number-mode je omogucen prema pocetnim podesavanjima, ali moze se upaliti/ugasiti ponovnim izdavanjem komande:

M-x line-number-mode <RET>

sh-mode je glavni-mod (major-mode). Glavni modovi podesavaju Emacs i vrlo cesto pruzaju specijalizovani skup komandi za editovanje odredjenog tipa teksta. Samo jedan glavni mod moze biti aktivan u svakom od bafera. Kao dodatak isticanju sintakse i podrske za uvlake, sh-mode definise nekoliko komandi ciji je cilj da pomogne u editovanju shell skripti. Sledi nekoliko tih komandi:

C-c (	 Umetanje definicije funkcije

C-c C-f	 Umetanje 'for' petlje

C-c TAB	 Umetanje 'if' izjave

C-c C-w	 Umetanje 'while' petlje

C-c C-l	 Umetanje indeksirane petlje od 1 do n

'line-number-mode' i 'column-number-mode', su manji-modovi (minor-modes). Manji modovi mogu da se koriste za prosirivanje glavnih modova i mogu se koristiti u neogranicenom broju u datom trenutku.

Saveti i trikovi

Dok je prethodna sekcija dala pregled osnovnih komandi za editovanje, nije predstavila mogucnosti Emacs-a. Sledeca sekcija ce pokriti neke od naprednijih tehnika i funkcionalnosti.

TRAMP

TRAMP (Transparent Remote Access, Multiple Protocols) je ekstenzija koja, kao sto i ime sugerise, pruza transparentan pristup udaljenim fajlovima preko velikog broja protokola. Kada budete upitani za ime fajla, unosenjem odredjenog oblika cete pozvati TRAMP. Neki primeri:

Da otvorite /etc/hosts sa root dozvolama:

C-x C-f /su::/etc/hosts

Da se povezete na 'myhost' kao 'myuser' preko SSH-a i otvorite fajl ~/example.txt:

C-x C-f /ssh:myuser@myhost:~/example.txt

Staza za TRAMP je obicno u formi '/[protokol]:[[user@]host]:<fajl>'. TRAMP podrzava mnogo vise od primera navedenih gore. Za vise informacija pogledajte TRAMP info za korisnike koji dolazi uz Emacs.

Makroi sa tastature i registri

Ovaj deo ce pruziti prakticnu demonstraciju upotrebe nekoliko mocnijih metoda za editovanje, a to su makroi i registri.

Cilj je da proizvedemo listing serije karaktera i njihove odgovarajuce pozicije u toj listi. Iako je moguce formatirati svaki od njih rucno, to bi bilo sporo i podlozno pravljenju gresaka. Alternativno, neke od Emacs-ovih mocnijih funkcionalnosti za editovanje se mogu upotrebiti. Pre opisa metode, navescemo neke detalje koji stoje iza tehnike.

Prva funkcija koju cemo predstaviti su registri. Registri se koriste za skladistenje i preuzimanje raznih tipova podataka od brojeva do podesavanja za prozore. Svakom registru je dodeljeno ime jednog karaktera: ovaj karakter se koristi za pristupanje registru.

Druga funkcija koja ce biti demonstrirana su makroi sa tastature. Makro sa tastature skladisti niz komandi kako bi mogli na lak nacin da se izvrse ponovo kasnije.

Pocev od bafera koji sadrzi nas skup karaktera:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

Pripremite registar pokretanjem `number-to-register' komande (C-x r n), a zatim uskladistite broj '0' u registar 'k':

C-x r n k

Sa kursorom na pocetku bafera, startujte makro (C-x () i krenite da formatirate karaktere:

C-x ( C-f M-4 .

Ubacite (C-x r i) i inkrementirajte (C-x r +) registar 'k'. Prefiks argument (C-u) se kristi da ostavi pointer pozicioniran posle ubacenog teksta.

C-u C-x r i k C-x r + k

Zavrsite formatiranje ubacivanjem nove linije. Emacs zatim moze da ponovi proces tako sto ce poceti od tacke gde ste poceli sa definisanjem makroa, za ostatak karaktera. C-x e kompletira, a zatim pokrece makro. Prefiks argument, M-0, uzrokuje da makro bude ponovljen sve dok ne dodje do greske. U tom slucaju on prekida kada dostigne kraj bafera.

<RET> M-0 C-x e

Rezultat:

 A....0
 B....1
 C....2
 [...]
 x....49
 y....50
 z....51

Regularni izrazi

Iz Emacs uputstva: "Regularni izraz, ili regexp skraceno, je model koji podrazumeva (moguce beskonacan) skup stringova." Ova sekcija nece ici u detalje o samim regularnim izrazima (jer, prosto, postoji previse toga da se pokrije). Pruzicemo brzu demonstraciju o moci regularnih izraza. Pogledajte Regularni izrazi sekciju u Emacs uputstvu za vise informacija.

S obzirom na isti scenario predstavljen gore: Lista karaktera koji treba da bude formatiran tako da predstavljaju svoje mesto u listi. (pogledajte Makroi sa tastature i registri). Opet, pocev sa sadrzajem bafera.

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

Na pocetku bafera, upotrebite C-M-% (ako vam je tesko da pritisnete skup tastera, upotrebite M- query-replace-regexp). Na liniji:

\(.\)

ch se poklapa sa jednim karakterom. Zatim, kada nas upozori za zamenu:

\1....\#^J
Note: '^J' predstavlja mesto gde bi trebala da se stavi nova linija. Nebi trebala da se unosi u liniji. Nova linija mora biti uneta bukvalno upotrebom C-q C-j.

Izraz za zamnu kaze: "Ubacite tekst koji se podudara izmedju prvog skupa zagrada (u ovom slucaju, jedan karakter), praceno sa 4 zareza i zatim jedan automatski uvecan broj pracen sa novom linijom.

Konacno, pritisnite ! za y za ceo bafer. Sva formatiranja koja su izvrsena u prethodnoj sekciji si izvrsena sa jednim regexp-om.

Prilagodjavanje

Emacs se moze podesavanjem editovanjem '~/.emacs' ili upotrebom komande M-x customize. Ova sekcija ce se fokusirati na rucno editovanje ~/.emacs, i pruziti neke primere za demonstraciju onih delova Emacs-a koji se obicno konfigurisu. Customize komanda pruza jednostavan interfejs za podesavanje, ali moze postati ogranicavajuce kako postajete upoznatiji sa Emacs-om.

Svi primeri se mogu izvrsiti dok Emacs radi. Da evaluirate izjavu u Emacs-u, upotrebite:

eval-buffer kao komandu ili,

C-x C-e da evaluirate zadnju izjavu

Za neke korisnike, ukucavanje 'yes' i 'no' je zamorno. Da umesto toga koristite 'y' i 'n' tastere dodajte ovo u .emacs:

(defalias 'yes-or-no-p 'y-or-n-p)

a zatim izvrsite eval-buffer u .emacs baferu.

Da zaustavite kursor upotrebite:

(blink-cursor-mode -1)

Slicno, da omogucite column-number-mode, kao sto je diskutovano u prethodnom delu:

(column-number-mode 1)

Slicnosti izmedju prethodne dve komande nisu slucajnost: blink-cursor-mode i column-number-mode su oba minor-modovi. Kao pravilo, manji modovi se mogu upaliti zadavanjem pozitivnog argumenta ili ugasiti sa negativnim argumentom. Ako se argument izostavi, manji mod ce biti naizmenicno zamenjen upaljen/ugasen.

Evo jos dodatnih primera manjih modova. Sledeci ce onemoguciti trake za skrolovanje, meni liniju i liniju za alatke.

(scroll-bar-mode -1)
(menu-bar-mode -1)
(tool-bar-mode -1)

Varijabla, 'auto--alist', se moze modifikovati da promeni glavni mod koji se koristi za odredjena imena fajlova. Sledeci primer ce napraviti difolt glavni mod za '.tut' i '.req' fajlove 'text-mode'.

(setq auto-mode-
  (
    '(("\\.tut$" . text-e)
      ("\\.req$" . text-e))
    auto-mode-alist))

Podesavanja se takodje mogu primeniti na nivou modova. Uobicajena metoda za ovo je dodavanje funkcije hook. Naprimer, da forsirate uvlake da koriste razmake umesto tabova, ali samo u text-mode:

(add-hook 'text-mode-ook (lambda () (setq indent-tabs-mode nil)))

Slicno, da samo koristite razmake za uvlake bilo gde:

(set-default indent--mode nil)

Precice na tastaturi se mogu podesiti na dva nacina. Prvi je pomocu 'define-key'. 'define-key' pravi precicu za komandu ali samo u jednom modu. Primer ispod ce napraviti da F8 brise sve prazne prostore od kraja svake linije u 'text-mode' baferu:

(define-key text-mode-map (kbd "<f8>") 'delete-trailing-whitespace)

Drugi metod je 'global-set-key'. Ovo se koristi za bindovanje tastera na komandu bilo gde. Da bindujete 'query-replace-regexp' (C-M-%) na '<f7>'.

(global-set-key (kbd "<7>") 'query-replace-regexp)

Bindovanje komande na alternativni taster ne zamenjuje vec postojece bindove. Ukratko, 'query-replace-regexp' ce biti zdruzen sa obe precice F7 i C-M-% nakon gornjeg primera.

Skoro sve u Emacs-u se moze podesiti. Pretrazivanje Emacs Wiki ce vam dati solidno mesto za start.

Ekstenzije

I pored toga sto Emacs sadrzi stotine modova, biblioteka i drugih ekstenzija, postoji jos dostupnih za dalje prosirenje Emacs-ovih sposobnosti. Vecina njih dolazi sa instrukcijama koje opisuju sve izmene koje je neophodno izvrsiti u ~/.emacs fajlu. Ove instrukcije se generalno mogu naci u delu sa komentarima na pocetku elisp sors koda, ili u README (ili slicno) fajlu u slucaju da ekstenzija sadrzi vise sors fajlova.

Veliki broj popularnih ekstenzija su dostupni kao paketi u 'community' repozitorijumu, a jos dosta je dostupno preko AUR-a. Imena tih paketa imaju 'emacs-' prefiks (naprimer, emacs-lua-mode). U mnogo slucajeva, izmene koje moraju da se izvrse na ~/.emacs se prikazu tokom instalacije paketa.

Ukoliko se desi da instrukcije za aktiviranje odredjene ekstenzije nisu dostupne u gore napomenutim lokacijama, proverite odgovarajucu stranicu u Emacs Wiki, koja ce skoro sigurno obezbediti primer podesavanja. Emacs Wiki je isto poznat kao izvor za otkrivanje jos dodatnih ekstenzija.

Takodje mozete da upotrebite Emacs Lisp Paket Arhiva (ELPA) da automatski instalirate pakete. Pogledajte web sajt za instrukcije. ELPA ce biti sadrzan u Emacs 24 (sledeca verzija Emacs-a); to je prihvacen deo Emacs ekosistema.

Resavanje problema

Problemi sa obojenim izlazom

Prema pocetnim podesavanjima, Emacs shell ce prikazati cudne simbole umesto zeljenog izlaza.

Ubacivanjem sledeceg u ~/.emacs resava problem:

(add-hook 'shell-mode-ook 'ansi-color-for-comint-mode-on)

Meniji se prikazuju kao prazni

Postoji bag u GNU Emacs-u 23.1 (ako koristite GTK skup alata) koji moze prouzrokovati da neki meniji budu prazni. Ovo je, izgleda, reseno u Emacs CVS stablu. Debian bag izvestaj sadrzi resenje.

Problemi sa prikazivanjem karaktera u X prozorima

Ako su, kada startujete emacs u X prozorima, svi karakteri u glavnom prozoru sa belim granicama (one koje vidite kada probate da vidite karaktere za koje nemate instalirane odgovarajuce fontove), neophodno je da instalirate xorg-fonts-75dpi i/ili xorg-fonts-100dpi i da restartujete X prozore.

Sporo startovanje

Sporo startovanje obicno iz dva razloga.

Da odredite koji bi mogao da bude, pokrenite Emacs sa:

$ emacs -q

Ako Emacs i dalje startuje sporo, pogledajte Neispravno podesavanje mreze. Ako ne, skoro je sigurno problem u vasem .emacs.

Netacno podesavanje mreze

Greske, obicno u /etc/hosts, ce obicno rezultirati sa 5+ sekundi kasnjenja prilikom startovanja Emacs-a. Pogledajte 'podesite ime hosta' uputstvo za podesavanje mreze za vise informacija.

Opterecenje init fajla

Jednostavan nacin da pronadjete uzrok je da stavite pod komentar (dodate kao prefiks liniji ';') na sumnjive delove vaseg ~/.emacs -a (ili ~/.emacs.d/init.el), a zatim da startujete Emacs ponovo da vidite da li ima promena. Imajte na umu da "require" i "load" mogu da uspore startovanje, posebno kada se koriste sa ekstenzijama. Njih treba, po pravilu, koristiti samo kad je njihov cilj: da budu u upotrebi odma po startovanju Emacs-a ili pruzaju malo vise od "ucitavanja" za ekstenziju. U suprotnom, koristite 'autoload funkciju direktno. Naprimer, umesto:

(require 'anything)

mozete da upotrebite:

(autoload 'anything "thing" "Select anything" t)

Cannot open load e: ...

Najcesci uzrok ove greske je 'load-path' varijabla koja ne sadrzi stazu do direktorijuma u kom se ekstenzija nalazi. Da resite to, dodajte odgovarajucu stazu u listu koja ce biti pretrazena pre ucitavanja ekstenzije:

 (add-to-list 'load-path "/path/to/directory/")

Kada pokusavate da koristite pakete za ekstenzije i Emacs je podesen sa prefiksom drugim nego '/usr', load-path ce morati da bude osvezen. Stavite sledece u ~/.emacs pre instrukcija koja dolaze uz paket:

 (add-to-list 'load-path "/usr/share/emacs/site-lisp")

Ako rucno kompajlirate Emacs, imajte na umu da je difolt prefiks '/usr/local'.

Izvori