Gym
lesson

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:

  1. nano — jednostavan, prijateljski. Sve prečice pišu na dnu ekrana.
  2. 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
  1. Pišeš tekst kao u običnom editoru.
  2. Pritisneš Ctrl+O da snimiš → Enter da potvrdiš ime.
  3. Pritisneš Ctrl+X da izađeš.

Toliko je sve.

Savet: Ako si prvi put u terminal editoru, koristi nano. Naučićeš vim kasnije 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:

  1. Normal mode (početni) — slova nisu za pisanje, već su komande za navigaciju i editovanje.
  2. Insert mode — pišeš tekst kao u običnom editoru.
  3. 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
  1. Pritisni i → uđeš u Insert mode.
  2. Otkucaj nešto.
  3. Pritisni Esc → vratiš se u Normal mode.
  4. Otkucaj :wqEnter. Snima i izlazi.

Ako si nešto zabrljao i samo želiš napolje bez snimanja:

  1. Pritisni Esc (ako nisi siguran u kom si modu, pritisni više puta).
  2. Otkucaj :q!Enter.

Najčešći vim "zaglavljen u editoru" moment: Otvoriš vim slučajno (npr. preko git commit bez -m), pišeš nešto, ne znaš kako da izađeš. Rešenje: Esc, pa :q! ako ne želiš da snimiš, ili :wq ako ž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š.