SPACEHAWKS'
WORLDNEWS
ISSUE 20
SZÖVEGSZERKESZTÕK
BEVEZETŐ
Ez egy némileg rendhagyó cikk abban a tekintetben, hogy nem annyira
Amigás szövegszerkesztőkről lesz szó, mint egy konkrét editorról, amely
gyakorlatilag minden platformon elérhető. Elég sokfélével volt szerencsém
dolgozni különböző platformokon: Amigán CEd és GoldEd, OS/2 alatt MED és FTE,
Linux alatt joe, Emacs és FTE, Windows alatt pedig szintén MED, FTE valamint
a Visual Studio (khm) editora. Mindegyiknek vannak előnyei és hátrányai,
a legjelentősebb számomra a különbözőségük volt: a munkahelyemen MED-del,
OS/2-n eltöltött órák után sokszor ültem értelmetlen tekintettel Amigám
előtt, hogy miért is nem másolta át a GoldED azt a kib*#? blokkot ctrl+c/ctrl+v
billentyűkombinációra? Sajnos ez a nehéz felfogásom számlájára írható
bosszantó eset egyre sűrűbben ismétlődött ahogy több platformmal is
megismerkedtem, és nagyon lelassított, mert kizökkentett az aktuális
gondolatmenetből... Ez a helyzet akkor vált tarthatatlanná,
amikor OS/2 után Linux alatt kellett programoznom a munkahelyemen, aholis
nem állt rendelkezésre az addig használt MED, így -- egy Amiga emulátor plusz
GoldED összeállítású elvetélt próbálkozást követően -- új editor után
kellett néznem, mindez kb. egy éve történt.
Három programot találtam, amelyek elfogadhatónak tűntek tulajdonságaik alapján.
Fontos volt hogy ingyenes legyen a program (majd pont Linuxra veszek programot,
mi?), valamint elfogadható támogatást nyújtson a C/C++-os fejlesztéshez:
könnyen lehessen navigálni a forráskódok között (pl. ne nekem kelljen tudni,
melyik könyvtárban/filéban van egy adott függvénydefiníció, "tudja" ezt az
editor), lehetőleg ismerje azokat a nyelveket amelyekre szükségem lehet,
vagy már ismerek (akkoriban ez kb. C/C++, List, PHP, HTML),
és tudja a manapság már alapvetőnek számító szintaxis megjelenítést
(vagy hogyishíják a syntax highlightingot magyarul?). (Mindig csodáltam a CEd-ben
programozó embereket, én nemigen lennék képes PHP-t úgy szerkeszteni, mint Lay...
Igaz ő nem ma kezdte a szakmát.) Ezen igényeknek az Emacs, az FTE és a
Vim tűnt csak alkalmasnak. (Próbálkoztam ezek előtt még pár Linuxos IDE-vel,
de ezek jobbára csak a nevetés és sírás hisztérikus egyvelegét tudták kihozni
belőlem jobb esetben.)
Először a Vim tetszett legjobban: annak volt a legszebb ikonja. (Nemhiába mondják
hogy fontos a csomagolás.) Egész kultúrált felhasználói interfészével fogadott,
a gond csak az volt vele, hogy bármilyen bilentyűt ütöttem is le, csak bipelni
tudott tőle a gép. Lévén hangkártya hiányában fel sem merült bennem, hogy
PC-s zenészként tengetem hátralévő napjaimat -- nem is beszélve muzikális
antitálentumomról --, maradtam hát a program az ablakzáró gombjánál. (Ez, nagy
megkönnyebbülésemre az elvárásaimnak megfelelően működött.)
Aztán következett az Emacs. Ez az editor a Unix legnépszerűbb feljesztői
környezete. Itt a problémám
az volt, hogy ez a program annyira összetett, hogy teljesen elvesztem benne.
Ekkor még nemigen tudtam elképzelni hogy egy ilyen összetett alkalmazást
különféle text filékba irkálással konfiguráljak, ahogy azt az Emacs-ban
tenni kellett, így erről is le kellett mondanom. Az igazsághoz hozzátartozik,
hogy az Emacs-hoz csakis nagyon komolyan célszerű nekiállni -- már nálam
okosabb emberek szerint --, lévén a konfigurálása is komoly programozói
feladat. (Olyannyira, hogy az Emacs-hoz képest a többi platform
"programmer's editor"-a gyakorlatilag nevetséges.)
Maradt az FTE, amellyel annyira elégedett voltam, hogy fontolgattam,
érdemes-e portolni Amigára (Eme, ne röhögj). A forráskód azonban korszerű
C++ volt, így megfelelő fordító hiányában elég reménytelen próbálkozás lett
volna. Inkább átkonfiguráltam a GoldED pár funkcióját az FTE-nek megfelelően,
így már minden platformon teljesen hasonló szerkesztővel dolgozhattam. Annyira
tetszett, hogy minden Linux alatt dolgozó emberfiának ezt javasoltam még
tiggris-nek is (mint az köztudott, a tiggris-ek tudnak
legjobban kérdőjelet írni).
Sajnos azonban az FTE hátrányai is hamar megmutatkoztak, legkevésbé a
nehézkes konfigurációja zavart: nem tudtam semmiféle funkcióját átállítani
a rögzített billentyűzetkiosztás miatt, így csak a Shift+kurzormozgatás
maradt, ami ugye Amigán elég kényelmetlen -- főleg VF billentyűadapterrel.
Hiányzott a bevált Amigás típusú kijelölés, a CEdből ismerős Amiga+b
kombináció is. Lévén szövegblokkok mozgatása az egyik leggyakrabban használt
funkció programkódok (át)írkálása esetén, a kijelölés különbözősége
igen zavaró volt továbbra is.
Ha jól emlékszem, javasoltam is anno Valenta Ferinek hogy módosítani kéne a
PC billentyűzet illesztőjét úgy, hogy az Amigáson nem, csak a PC-s
billentyűzeten létező gombok (PgUp, PgDn, Home, End, stb.) Shift+kurzor és
társai helyett Amigán nem használt billentyűkódokat küldjön, így egy
megfelelő driver segítségével (de esetleg még enélkül is) megoldható lett volna
pl. GoldED-ben hogy egyszerre működjön pl. a PgUp és a Shift-el történő
kijelölés is. Egy commodity-vel meg szimulálható lett volna a jelenlegi működés
is (PgUp->Shift+fel, Home->Shift+balra), csak épp konfigurálhatóan. Persze ez
csak rendszer alatt működne, de máshol nincs is rajta szükség. Azonban
mindez csak az én személyes agyrémem volt, fel sem merült
hogy esetleg megvalósul ez a dolog.
Szóval eléggé le voltam lombozódva, csalódtam az összes eddig használt
editorban. Ez igen komoly probléma egy olyan ember esetében, aki programozónak
vallja magát, így bármilyen engedményre kész voltam, hogy megtaláljam a
megfelelőt. Egyik Linuxos ismerősömnek elmeséltem sirámaimat, aki a Vim-mel
kapcsolatos megjegyzéseimre valahogy így felelt levelében:
"Igen? A vi szar, mert tanulni kell?... Szelavííí"
Nahát több sem kellett nekem. Rosszul nem járhattam vi ismeretekkel,
legrosszabb esetben alapos okom lesz eme program fikázására -- melyet eddig
a szükséges ismeretek hiányában nemigen tehettem. Körülbelül ezóta vallom
magam Vim felhasználónak.
Persze a program kezelésének elsajátítása nem ment öt perc alatt. Ennyi idő
alatt kb. a kilépést meg a help-be történő belépést sikerült elsajátítani.
Mondjuk ez nem volt nagy turpisság, hiszen ezek induláskor megjelennek a
képernyőn -- bár egy Emacs típusú szövegszerkesztőhöz szokott felhasználónak
már ez is fejfájást okozhat. Ha ugyanis : karakterrel lehet parancsokat adni
a szövegszerkesztőnek, akkor hogy lehet : karaktert írni?! Kb. ilyen kérdések
merültek fel bennem akkortájt. A rejtély megfejtéséhez nézzük meg a
lyukkártyás időszak után megjelent szövegszerkesztők típusait. Három fő
kategória van, ezek:
NÉMI SZÖVEGSZERKESZTŐ-TÖRTÉNELEM
Az ed volt az egyik első editor, amelyet szélesebb körben használtak a gépek
memóriájában lévő forráskód szerkesztésére. Ez a program akkortájt volt
használatban, amikor a még a mainframeken igen drága volt a gépidő a
programozó idejével szemben, és ennek megfelelően igen egyszerű és igénytelen
programocska volt: különbözö parancsokkal vezérelhetjük, mint pl. listázz ki
az xy sorokat, az aktuális sortól törölj x sort, vagy az aktuális sor elé
szúrd be a következőkben megjelenő promproknál megadott szöveget. Lévén
sor-orientált szerkesztő volt, egy sorban szereplő hiba nagy valószínűséggel
azt jelentette, hogy az egész sort le kellett cserélni. (Akkoriban még inkább
nyomtatót használtak elsődleges kimeneti egységként, nem pedig monitort mint
manapság -- így fejlettebb szerkesztési lehetőség nemigen volt.)
(Hasonló dologgal találkozhatunk a SEKA assemblerben
Amigán... de lehet hogy az utódok -- AsmOne, AsmPro -- is tartalmazzák még ezt
az editort. Az assembler promtjába, ahova normális esetben csak a betöltésre,
fordításra szolgáló parancsokat adjuk ki, beírhatunk ed parancsokat is).
Ez az editor testesíti meg leginkább a UNIX minimalista filozófiáját (mindig a
legcélszegűbb, legegyszerűbb programot használjuk az adott feladatra; avagy
egy program nem akkor tökéletes ha már minden lehetséges funkciót hozzáadtunk,
hanem akkor, ha már nincs semmi amit elvehetnénk belőle úgy, hogy a funkcióját
maradéktalanul ellássa). Az interfésze azonban olyannyira kényelmetlen és
nehézkes, hogy egyedül talán Ken Thompson vallja magáról azt, 1985 óta
folyamatosan ed-et használ szövegszerkesztésre. (Bár széles körben elterjedt
gyanú szerint Ken csak viccel.)
A vi (ejtsd: "ví áj", és nem "vi") és klónjai a népszerűség tekintetében fej-fej
mellett halad az Emacs-sal,
bár a vi alkalmasabb kisebb szerkesztési feladatokra mérete és kisebb
memóriaigénye miatt. A legjobb vi klón népszerűség és bővíthetőség
tekintetében a Vim (Vi IMproved), mely jelenlegi 6-os verziója befejezettnek
tekinthető: annyi funkció van már benne, hogy valószínűleg nincs ember aki
mindet használná.
Ez már "vizuális" editor (erről kapta nevét is). Itt már
nincs állandó prompt, ahova a parancsokat írjuk: ezeket "látatlanul" írjuk be,
és jobbára azonnal végrehajtódnak.
Itt jelent meg a ma ismeretes kurzor is, mely meghatározza a kiadott parancsok
végrehajtásának helyét.
Nem kell megijedni, ugyanis a legtöbb
parancs egy karakteres lévén nem is igen igényel megerősitést. A legtöbb
parancs paraméterezhető a parancs kiadása előtt beírd számmal: pl. az 'x'
parancs karaktereket töröl, így ha 10x-et írunk be, 10 karakter fog törlődni
úgy, mintha egy "normál" editorban a del-t nyomnánk meg 10-szer.
A Vim-mel kapcsolatban egy érdekesség, hogy készítője, Bram Moolenaar Amigán
írta az első verziót egy régi Amigás vi klón alapjain, és csak később került
át a program UNIX/Linux, Dos, Windows, OS/2, BeOS, stb. platformokra. Másik
jópofa dolog, hogy a DOS és Windows verziók mind a "pc" könyvtárban csücsülnek
-- dehát a kettő ugyanaz, nem? A fentiekből következik, hogy "alapból" a
vi-ban nem tudunk szöveget beírni/átírni, hiszen minden egyes karakterhez egy
parancs van rendelve. Persze ez így nem igaz, mivel tucatnyi parancs van
insert módba történő átlépésre, ahonnan szövegünk beírása után az Esc
lenyomásával juthatunk vissza parancs (vi terminológia szerint normál) módba.
Az alap vi nagy előnye, hogy minden UNIXon megtalálható, míg a Vim
gyakorlatilag minden ma használatos operációs rendszeren. Ellenzői azt szokták
felróni neki, hogy idejétmúlt, és hogy nem igazán célszerű
Ennyi gondolom elegendő az alapvető különbségek észrevételéhez, kicsit
bővebben lentebb írok a Vimről.
A harmadik csoportba tartoznak az Emacs és hasonmásai, gyakorlatilag ezek
teszik ki a ma használatos editorok nagy részét a UNIXon kívüli világban.
Az eredeti változatban a Ctrl és valamelyik alfanumerikus billentyű (esetleg
több billentyű ritkábban használt funkciók esetében) szolgált kurzormozgatásra
és parancsok bevitelére, lévén az editor mindig "insert" módban volt. Ma már
persze minden billentyűzeten megtalálhatók a kurzorbillentyűk, pár Emacs-ról
származó billentyűkombinációt, mint pl. a Ctrl-X, a Ctrl-C, Ctrl-V mindenki
ismeri. A cikkem elején említett editorok így többé-kevésbé mind Emacs
utánzatoknak tekinthetők. Fontos megjegyezni, hogy az Emacs sokkal több, mint
egy editor, leginkább csak UNIX alatt programozóknak célszerű foglalkozni
vele. Összetettségét jól szemlélteti az egyik Vim szlogen:
jó program az az Emacs, csak egy baja van: hiányzik belőle egy jó editor,
ezért én Vimet használok. Az EMACS tulajdonképpen az IDE UNIX-os megfelelője.
UNIX-on nem terjedtek el a már platformokon megszokott IDE-k (Integrated
Developer Environment, Integrált Fejlesztői Környezet), mivel ezek
csak "eszközszegény" környezetben használhatók hatékonyan: nem sok IDE van
amely több igen eltérő nyelvet is támogat. A UNIX filozófiája ezzel szemben
az, hogy minden feladatra a legalkalmasabb ezközt használjuk, így egy
egyszerűbb projectnél is előfordulhat, hogy 4-5 programozási nyelvet célszerű
használni. (Hiszen ha valamit 3 sorban megírhatunk perlben, butaság arra C
programot eszkábálni.) Ilyen összetett szerkesztési feladatra csak egy
maximálisan konfigurálható editor alkalmas csak igazán, ezt az igényt az Emacs
saját beépített nyelvével, a E-Lisp-el képes nyújtani. Gyakorlatilag nincs két
ugyanúgy működő, aktív használatban lévő Emacs, hiszen minden komoly Emacs
felhasználó maga "rakja össze" Emacs-át az interneten fellelhető Lisp
programokból. Éppen ezért ezt a programot (még?) nem ismerem, lévén UNIX alatt
még nem állt módomban olyan munkát végezni, ahol az Emacs előnye
megmutatkozott volna -- és időm sem volt rá, mivel hatékony
használatát elsajátítani csak hetek, hónapok alatt lehet...
Egy igazán sokoldalú UNIX fejlesztő mindkettőt jól ismeri, és mindig a feladatnak
inkább megfelelőt használja. A Vim-et és az Emacs-ot preferálók tábora UNIX
alatt kb. 50-50%, a többi elenyésző. (Sajnos én már találkoztam olyan
BSD rendszergazdával, aki nem rakta fel a vi-t.) Persze itt nem az alkalmi
UNIX felhasználókról beszélek, nekik jobban megfelel a joe vagy a pico kis
méretük és az egyéb platformokon fellelhető editorokkal való hasonlóságuk
miatt.
Mind az Emacs, mind a vi felhasználói táborának vannak fanatikus megszállottjai.
Fanatikus Emacs felhasználók szerint a vi egy merev és primitív játékszert,
amely alkalmatlan komoly szerkesztési munkálatokra.
Fanatikus vi felhasználók szerint az Emacs túl komplikált, lassú és kövér
ahhoz hogy egy értelmes emberi aggyal használhatónak mondható legyen.
EGY RÖVID VIM ISMERTETŐ
Mint már említettem, mostanában szinte minden szövegszerkesztési munkára
Vim-et használok Amigán, Linuxon, de még a Windows-os Visual Studio-ban is
(csókoltatom azt, aki ezt lehetővé tette). Általában normál szöveget, batch
fájlokat, C, C++, perl, PHP és Python programokat, valamint HTML-t és XML-t
szerkesztek vele. Természetesen ezek szintaxisát mind ismeri, valamint
helyenként olyan nyelv-függő funkciókat is nyújt mint pl. "ugorj a következő
eljárásra".
Mint fentebb említettem, a Vim legfőbb furcsasága abból ered, hogy az editor
azonos billentyűkre különbözőképpen reagál az aktuális üzemmódtól függően. Nem
kell megijedni, hiszen alapvetően csak két mód van:
- normál mód: itt parancsokat adhatunk, pl. a 'o'-t leütve az aktuális sor alá
beszúródik egy üres sor, és insert módba kerülünk, ahonnal Esc-el léphetünk
vissza.
- beszúrás (insert) mód: ez felel meg egy "Emacs-típusú" szövegszerkesztőnek,
azaz amit itt begépelünk, az ténylegesen beíródik a szövegbe.
A teljesség kedvéért megemlítem a Vim 6-os verziójának egy újítását, az "Easy"
módot: ebben a változatban (tulajdonképpen ez egy indítási opció) a program
állandóan beszúrás (insert) módban van, nem is lehet normál módba kilépni.
Ezt a módot én nem ismerem, lévén én a Vim-et pont a két üzemmódja miatt
kedvelem: míg más editorokban állandóan hadonászni kell a kurzor- és
alfanumerikus billentyűzet között, a Vim-ben a kurzormozgató gombok egyből ott
vannak a jobb kezem alatt, arról nem is beszélve, hogy a sorban levő h, j, k,
l gombokkal kényelmesebb is navigálni, mint a szokásos fordított-T elrendezésű
kurzorbillentyűkkel.
Ez annak köszönheti létjogosultságát, hogy a Vim-ben rendesen működnek
a kurzorbillentyűk (normál és beszúrás módban is), azaz kezdők is
használhatják azonnal, a normál mód funkcióit később, fokozatosan el lehet
sajátítani. A legfontosabb funkciók normál módban tehát:
- Az 'i' gombot lenyomva léphetünk át beszúrás módba, ezt az ablak alján
megjelenő "-- INSERT --" felirat jelzi. Innen az Esc leütésével léphetünk
vissza normál módba.
- A ':' gombbal adhatunk ki ex parancsokat, pl. innen vezérelhetjük a
betöltést és a kimentést. Ezek közül a lényegesebbek:
:w |
Aktuális puffer kimentése |
:q |
Kilépés aktuális pufferből |
:qa |
Azonnali kilépés Vimből (mentés nélkül) |
:wq |
Aktuális puffer kimentése és kilépés |
Ezekkel az ismeretekkel a Vim-et korlátozottan bár, de használhatjuk
szerkesztésre. A program használatához a Vim 5.7-es letöltését ajánlom az
ftp.vim.org, ftp.de.vim.org, stb. szerverek valamelyikéről, az Amigás verziók
a /pub/vim/amiga könyvtárban vannak. A vim57bin.tgz és vim57rt.tgz file-okra lesz
szükség (nameg untar-ra, ha még nem lenne), a vim57src.tgz a forráskód -- erre
nem lesz szükség. Már platformon a Vim 6.0-t ajánlom, de ennek az Amigás
verziója még eléggé fejlesztés alatt áll, így nem javaslom senkinek.
Az 5.7-es csak konzolban fut, de a 6.0 várhatóan már saját ablakban vagy
akár képernyőn is használható lesz.
Mivel én nem akarok egy külön shell-t indítani csak azért, hogy Vim-et
futtassunk benne, csináltam neki egy indító ikont. Átmásoltam a CLI ikont Vim
néven, és átállítottam az ikonját a Vim disztribúcióban talált 16 színű
ikonra. A tooltype-okba ezeket írtam:
WINDOW=CON:100/60/520/400/Vi Improved/SHELL
STACK=65536
FROM=S:Vim-Startup
(Stack nem tudom hogy kell-e neki, de azért beállítottam 64k-ra a biztonság
kedvéért. A Window sorban azért nem adtam meg a CLOSE opciót, mert a konzolos
Vim úgysem tud vele mit kezdeni az egérrel. Sebaj, majd a GUI-s verzió tudni
fogja... bár egy jó editorhoz úgysem szükséges egér -- én sosem használom.
Továbbá a Window sorban CON: szerepel egységként, ez azért van így, mivel a
Vim-nek ez tökéletesen megfelel, a Shell-ekhez használatos spéci konzolok --
KingCON, ViNCEd -- maximum összezavarják, más hasznuk nincs.)
Íme az S:Vim-Startup fájlom tartalma:
; belepunk a gyakran hasznalt konyvtarunkba
CD Data:Home
; editor inditasa
Apps:Productivity/Vim/Vim57/Vim
; kilepunk a shellbol
EndCLI >NIL:
No, ha mindez megvan, akár el is indíthatjuk. Ha mindent a megfelelő helyre
raktunk (a vim??rt.tgz tartalmát is), akkor az ikonra kattintva a bejelentkező
képernyő jelenik meg. Itt láthatjuk a fentebb tárgyalt, kilépésre
használható funkciót, valamint némi segítséget a helpbe történő belépéshez.
Mivel ikonról indítottuk a programot, szükségünk lesz egy új parancsra, ami a
betöltést végzi. Ez a ':e' (edit). Írjuk be a bemutatkozó képernyőn:
:e S:Startup-Sequence
Persze a gyakorlatban elegendő kb. annyit beírni, hogy ":e S:Sta", majd a
Tab nyomogatásával
kiválasztani a szükséges fájlt. Némileg szokatlan, de garantáltan gyorsabb
módszer a nem két ujjal gépelők számára. (Az egyelőre Amigán nem elérhető
GUI-s módban a megfelelő buttonra kattintva vagy menüpont kiválasztva van
normál fájlválasztó is.)
(Persze nem árt biztonsági másolatot készíteni, mivel a Spacehawks nem vállal
felelősséget az esetleg tönkretett rendszerekért.)
Itt a kurzorbillentyűkkel már rendesen navigálhatunk, de ne feledjük hogy
normál módban van az editor alapértelmezés szerint. Bizonyos gombok lenyomása
ilyenkor igen destruktív lehet, ezért álljon itt két normál módban használható
funkció:
Fontos, hogy a kis és nagybetűkhöz különböző funkciókat rendeltek, erre oda
kell figyelni. Ha be akarunk írni valamit, a legegyszerűbben az 'i' gombbal
léphetünk beszúrás módba. Ha végeztünk, Esc normál módhoz, majd ':qw' a fájl
kimentéséhez és kilépéshez. Ha módosítottuk a fájlt, már nem tudunk a ':q'-val
kilépni, mivel a Vim figyelmeztet hogy akkor elvesznének a módosításaink.
Általában igaz, hogy a ! karakterrel erősíthetjük meg a parancsot, azaz pl:
:q! |
Kilépés, esetleges módosítások elvesznek |
:w! |
Read-only-ként betöltött file kiírása (már ha a rendszer engedi) |
Ha megismerkedünk a normál mód kurzormozgató gombjaival, akkor elvileg
bármilyen rendszeren tudunk szövegfájlt szerkeszteni. Ezek:
h |
balra |
j |
le |
k |
fel |
l |
jobbra |
Ezekre azért lehet szükség, mert régebbi rendszereken csak sima vi van, ahol
esetleg nem működnek a kurzorbillentyűk, vagy esetleg régebbi
terminálprogramot használunk, amelyben nem értelmezettek a kurzorbillentyűk.
Mégegyszer a legfontosabb billentyűk:
i, Esc |
beszúrás mód, normál mód |
h |
balra |
j |
le |
k |
fel |
l |
jobbra |
u |
undo |
:qw |
mentés és kilépés |
:q! |
kilépés mentés nélkül |
:w! |
mentés |
:e |
xy fájl betöltése |
Ennyi már elég az elinduláshoz. Ha valakit komolyabban érdekel a dolog,
könnyedén találhat további információkat a helpben és az interneten is. Vannak
magyar nyelvű erőforrások is, ezek a http://www.vim.org és
http://vim.sf.net címekről is elérhetők, de engem is kérdezhettek bátran az
#amigahu-n vagy az attis@maugli.matavnet.hu címen.
Néhány további funkció, amelyekre csak később jöttem rá:
v |
"visual" mód, magyarul kijelölő üzemmód, a CEd Amiga+b-jének felel meg |
y |
"yank": visual mód után használandó, a copy (CEd Amiga+c) megfelelője |
d |
"delete": visual módban, a kivágás (CEd Amiga+x) megfelelője |
p |
"paste": kimásolt vagy kivágott blokk beillesztése |
<,> |
visual módban blokk mozgatása 1 tabbal befelé/kifelé |
. |
előző szerkesztési művelet megismétlése az aktuális pozícióban |
{,} |
ugrás előző és következő bekezdésre |
[[,]] |
ugrás előző és következő funkcióra |
/<txt> |
keresése |
n |
előző keresés ismétlése |
És még sorolhatnám, dehát épp erre van a Vim beépített helpje. Ugyan a Vim sok
funkcióját ismerik más editorok is, de az összeset -- tán az Emacs kivételével
-- aligha. Minél összetettebb feladatokra hasznájuk az editort, bár ehhez el
kell távolodni a "ha nem tudom a billentyűkombinációt, megnézem a menüben"
hozzáállástól. Mióta Vim-et használok, GoldEd kifejezetten primitívnek tűnik,
pedig annak már van pár funkciója, már csak a menürendszerét átnézve is.
De ez látszik abból is, hogy míg a 300k-s GoldEd jó része GUI kód, addig a big
Vim 480k GUI nélkül. (Azért "big", mert minden Amigán rendelkezésre álló
funkció bele van fordítva. A befordított opcionális funkciókat a
:version paranccsal nézhetjük meg Vim-ből.)
Ugyan hétvégi szövegszerkesztőknek nem ajánlanám (azért azok a menük hasznosak
néha... bár a Vim GUI-s verziójában benne lesz ez is), de aki napi 1-2 órát
vagy többet tölt szövegszerkesztéssel, az nem veszíthet semmit, ha rászán pár
délutánt a megismerésére.
EGY VIM SCRIPT: MAGYAR KARAKTEREK
Én időm nagy részében angol billentyűzettel dolgozom, így általában problémát
jelent a magyar ékezetes karakterek gépelése. Ugyan Amigán megoldható ez az
Alt+F, Alt+H, Alt+J és Alt+H után gépelt a, e, i, o, u betűkkel, de ez
egyrészt máshol nem működik, másrészt -- szerintem -- elég kényelmetlen. Ezért
próbaképpen csináltam egy Vim scriptet, amely lehetővé teszi az ékezetes betűk
"repülőékezettel" történő írását, pl. az a majd ' karaktereket beütve á betű
jelenik meg. A dolog használhatónak bizonyult, azóta magyar nyelvű szöveg
gépelésére ezt használom. Íme a script:
" This vim script allows writing
" Hungarian accented letters with flying accent.
imap a' á
imap e' é
imap i' í
imap o' ó
imap o: ö
imap o" ő
imap u' ú
imap u: ü
imap u" ű
imap A' Á
imap E' É
imap I' Í
imap O' Ó
imap O: Ö
imap O" Ő
imap U' Ú
imap U: Ü
imap U" Ű
Ezt a $VIM könyvtárba célszerű pakolni magyar.vim néven: ez az a könyvtár, ahol az alap vimrc file van,
amely a személyes beállításainkat tartalmazza.
(Ez UNIX-ok alatt nem igazán oldható meg, ott talán a ~/.vim/magyar.vim fájlnév ajánlható.)
Ilyen vim script fájlokat a :source (rövidítve :so) paranccsal hajthatunk végre:
:so $VIM/magyar.vim
Attis |
|
|