Tekst editori
Cilj lekcije: Naučiti kako se uređuju tekstualni fajlovi direktno u terminalu pomoću nano i vim editora — kako se otvaraju, kako se piše, snima i izlazi iz njih.
Zašto editor u terminalu?
Na grafičkim sistemima koristiš VS Code ili Notepad. Ali na serveru, u SSH sesiji ili u kontejneru, najčešće nemaš grafički interfejs — postoji samo terminal. Tada ti treba editor koji radi unutar terminala.
Dva najpopularnija su:
nano— jednostavan, prijateljski. Sve prečice pišu na dnu ekrana.vim— moćan, brz, ali ima krivu učenja zbog modova. Skoro uvek je instaliran na svakom Linux sistemu.
Postoji i emacs, ali ga preskačemo — nano i vim su dovoljni za 99% slučajeva.
nano — prijateljski editor
Otvaranje fajla
nano beleska.txt
Ako fajl ne postoji, nano ga kreira pri prvom snimanju. Ako postoji, otvara mu sadržaj.
Kako izgleda nano
Na vrhu ekrana je naziv fajla, na sredini je sadržaj (kursor je tamo gde pišeš), a na dnu su prečice:
GNU nano 7.2 beleska.txt
Ovo je moj prvi fajl.
Mogu da pisem normalno.
^G Help ^O Write Out ^W Where Is ^K Cut
^X Exit ^R Read File ^\ Replace ^U Paste
Simbol ^ znači Ctrl. Dakle ^O je Ctrl+O, ^X je Ctrl+X.
Najvažnije prečice
| Prečica | Šta radi |
|---|---|
Ctrl+O |
Snima fajl (Write Out). Pita te za ime — pritisni Enter da potvrdiš. |
Ctrl+X |
Izlaz iz editora. Ako ima nesnimljenih izmena, pita te da li da ih sačuva. |
Ctrl+K |
Iseca trenutni red |
Ctrl+U |
Lepi isečeni tekst |
Ctrl+W |
Pretraga u fajlu |
Ctrl+G |
Otvara pomoć (Help) |
Tipičan tok rada
nano todo.txt
- Pišeš tekst kao u običnom editoru.
- Pritisneš
Ctrl+Oda snimiš →Enterda potvrdiš ime. - Pritisneš
Ctrl+Xda izađeš.
Toliko je sve.
Savet: Ako si prvi put u terminal editoru, koristi
nano. Naučićešvimkasnije kada se budeš osećao komfornije.
vim — moćni editor
vim je gotovo svuda instaliran (čak i na minimalnim sistemima), pa je korisno znati barem kako da uđeš, napišeš nešto i izađeš.
Šta su modovi?
Vim ima različite modove — u svakom modu tastatura radi različito. Ovo je glavni razlog zašto deluje konfuzno na početku.
Tri najvažnija moda:
- Normal mode (početni) — slova nisu za pisanje, već su komande za navigaciju i editovanje.
- Insert mode — pišeš tekst kao u običnom editoru.
- Command mode — pokrećeš komande tipa snimi, izađi, pretraga.
Otvaranje fajla
vim konfiguracija.conf
Otvori se u Normal mode. Ne možeš odmah da pišeš.
Prelazak u Insert mode
Pritisni slovo i (insert). Na dnu ekrana pojavi se -- INSERT --. Sada pišeš normalno.
Ovo je moj tekst u vim editoru.
-- INSERT --
Povratak u Normal mode
Pritisni Esc. Sada možeš da daješ komande.
Snimanje i izlazak
Iz Normal mode-a, otkucaj jednu od ovih komandi (počinju dvotačkom :):
| Komanda | Šta radi |
|---|---|
:w |
Snima fajl (write) |
:q |
Izlazi iz editora (quit) |
:wq |
Snima i izlazi |
:q! |
Izlazi BEZ snimanja (odbacuje izmene) |
:x |
Isto kao :wq |
Posle kucanja komande, pritisni Enter.
Najmanji mogući tok rada u vim-u
vim test.txt
- Pritisni
i→ uđeš u Insert mode. - Otkucaj nešto.
- Pritisni
Esc→ vratiš se u Normal mode. - Otkucaj
:wq→Enter. Snima i izlazi.
Ako si nešto zabrljao i samo želiš napolje bez snimanja:
- Pritisni
Esc(ako nisi siguran u kom si modu, pritisni više puta). - Otkucaj
:q!→Enter.
Najčešći vim "zaglavljen u editoru" moment: Otvoriš vim slučajno (npr. preko
git commitbez-m), pišeš nešto, ne znaš kako da izađeš. Rešenje:Esc, pa:q!ako ne želiš da snimiš, ili:wqako želiš.
Korisne komande u Normal mode
Sve ovo radiš BEZ pritiskanja Enter (osim ako počinje dvotačkom):
| Tipke | Šta rade |
|---|---|
i |
Insert mode (kursor ostaje na mestu) |
a |
Insert mode (kursor pomeren za jedno mesto desno) |
o |
Otvori novi red ispod i uđi u Insert mode |
x |
Obriši znak ispod kursora |
dd |
Obriši ceo red |
yy |
Kopiraj ceo red (yank) |
p |
Nalepi (paste) ispod trenutnog reda |
u |
Undo (poništi poslednju izmenu) |
Ctrl+r |
Redo |
/tekst |
Pretraga unapred za "tekst" |
gg |
Skok na početak fajla |
G |
Skok na kraj fajla |
Nano vs Vim — kada šta?
| nano | vim | |
|---|---|---|
| Početnička kriva | Lako (5 minuta) | Strmo (sati/dani) |
| Brzina rada za iskusnog korisnika | Spora | Vrlo brza |
| Uvek instaliran? | Često, ali ne uvek | Skoro uvek |
| Modovi? | Nema | Ima (Normal, Insert, Command) |
| Pogodno za | Brze izmene konfig fajlova | Dugo editovanje, kod, programeri |
Praktično pravilo:
- Brzo nešto da promeniš u konfig fajlu? →
nano - Radiš na produkcijskom serveru gde nano možda nije instaliran? →
vim(barem znaj da uđeš i izađeš) - Pišeš kod ceo dan? → uloži vreme u učenje vim-a
Provera koji editor je dostupan
which nano
which vim
Ako komanda vrati putanju (npr. /usr/bin/nano), editor je instaliran. Ako ne vrati ništa, nije.
Na nekim sistemima je instaliran samo vi (minimalna verzija vim-a) — radi po istim pravilima kao vim za osnovne operacije.
Promena podrazumevanog editora
Mnoge komande (npr. git commit, crontab -e, visudo) automatski otvaraju editor. Koji editor pokreću zavisi od EDITOR promenljive okruženja.
# Postavi nano kao podrazumevani
export EDITOR=nano
# Ili vim
export EDITOR=vim
Da bi izmena ostala trajna, dodaj ovu liniju u ~/.bashrc.
Rezime
| Komanda | Šta radi |
|---|---|
nano fajl |
Otvara fajl u nano editoru |
Ctrl+O, Ctrl+X |
nano: snimi, pa izađi |
vim fajl |
Otvara fajl u vim editoru (Normal mode) |
i |
vim: ulazak u Insert mode (pisanje) |
Esc |
vim: povratak u Normal mode |
:wq |
vim: snimi i izađi |
:q! |
vim: izađi bez snimanja |
Minimum koji moraš znati: Otvori fajl u nano, snimi (Ctrl+O, Enter), izađi (Ctrl+X). I za vim: pritisni i da pišeš, Esc pa :wq da snimiš, ili Esc pa :q! da pobegneš.