Joe's Own Editor - szövegszerkesztő
joe [globális kapcsolók] [ [lokális kapcsolók] fájlnév ]...
A JOE egy ASCII szöveg képernyőszerkesztő. Rendelkezik "üzemmód nélküli" felhasználói felülettel is, ami hasonlít számos jól ismert, felhasználóbarát PC-s szerkesztőre. A Micro-Pro WordStar és a Borland "Turbo" nyelvek ismerői otthon fogják érezni magukat benne. Ezen kívül a JOE egy teljesfunkciós UNIX képernyőszerkesztő, és sok segédeszközt nyújt program- és szövegszerkesztésre.
A JOE ingyenes szoftver, szabadon terjeszthető és módosítható a Free Software Foundation által kiadott GNU General Public License-ben leírtak szerint. A szerző nem tervezi kereskedelmi vagy shareware programmá alakítását. Az Internetről anonymous FTP-vel letölthető a következő helyről: ftp.std.com, fájl: src/editors/joe*.tar.Z.
A szerkesztő indításához gépelje be, hogy joe. Ezt követheti igény
szerint egy vagy több szerkesztendő fájl neve. Minden egyes fájlnév elé be lehet
írni lokális kapcsolókat (lásd az alábbi lokális kapcsolók táblázatot). Az egész
szerkesztőre vonatkozó globális kapcsolókat is be lehet írni a parancssorba (lásd az
alábbi globális kapcsolók táblázatot). Ha új fájlt szerkeszt, megadhatja annak
nevét a szerkesztő betöltésekor is, vagy a szerkesztőben, mentéskor. A fáljnevek
módosított megadása is engedélyezett, mely lehetővé teszi a programkimenet, standard
kimenet/bemenet, fájlrészek és eszközök szerkesztését. Részletekért lásd az
alábbi Fájlnevek részt.
A szerkesztőben begépelhet szöveget, illetve használhat speciális vezérlőkarakter-sorozatokat
más szerkesztési feladatok elvégzésére. A vezérlőkarakter-sorozatok leírását
megtalálhatja ezen man-oldal folytatásában, vagy a szerkesztőben, ha beüti a ^K H
sorozatot a segítségért.
És most néhány homályos számítógépes lecke:
A ^ azt jelenti, hogy lenyomva kell tartani a Control billentyut, amíg a
másik billentyut leüti (ugyanúgy, ahogy a nagybetuknél a Shift billentyu
muködik). Néhány vezérlőkarakter-sorozatra saját billentyu is van, így azokhoz
nem kell lenyomni a Control billentyut: a ^[ helyett az ESC, a ^?
helyett a Del, a ^H helyett a Backspace, a ^I helyett a Tab,
a ^M helyett a Return vagy az Enter, a ^J helyett pedig a Linefeed
használható. Néhány billentyuzeten bajos lehet egyes vezérlőbillentyuk
használata. A ^_, a ^^ és a ^@ általában begépelhető a Shift
lenyomása nélkül is (azaz próbálja ki a ^-, ^6 és ^2
sorozatokat). Más billentyuzetek esetleg kiosztják ezeket más billentyukre.
Próbálja ki a ^., ^, és ^/ sorozatokat. A ^SPACE
általában használható a ^@ helyett. A ^\ és ^] sorozatokat sok
kommunikációs program értelmezi, például a telnet és a kermit is. Általában csak
le kell ütni kétszer a billentyut ahhoz, hogy átmehessen a kommunikációs programon.
Ha beütötte a ^K H sorozatot, megjelenik a képernyő tetején az első
segítségablak. Ettől függetlenül továbbra is gépelhet és szerkesztheti a
szöveget. A többi címszó eléréséhez üsse be a ^[< és ^[> sorozatokat (azaz
ESC < és ESC >). A segítségablak eltüntetéséhez használja a ^K H
sorozatot.
Testreszabhatja a billentyuzetkiosztást, a segítségképernyőket és néhány más
beállítást, ha lemásolja a JOE inicializációs fájlját (általában /usr/local/lib/joerc)
saját könyvtárába .joerc néven, és módosítja. Lásd az alábbi joerc
részt.
A JOE e-mail és News alapértelmezett szerkesztőként való használatáért át kell
állítania az EDITOR és VISUAL környezetváltozókat a shell
inicializációs fájljában (.cshrc vagy .profile), hogy a JOE-ra
mutassanak (a joe általában a /usr/local/bin/joe útvonalon érhető el).
Lehet, hogy be kell még állítania néhány homályos meghívási paramétert,
különösen akkor, ha munkaállomás-képernyője nem úgy frissít, ahogy kellene. Lásd
az alábbi Környezetváltozók részt.
Az alábbi globális opciókat a parancssorban lehet beállítani:
Ezen lehetőségek mindegyikét meghatározhatjuk a joerc fájlban is. Sőt, a NOXTON,
BAUD, LINES, COLUMNS és a DOPADDING funkciókat környezetváltozókkal is
beállíthatjuk.
A most következő lehetőségeket a parancssor fájlnevei előtt definiálhatjuk:
Ezeket a lehetőségeket akár a joerc fájlban is beállíthatjuk. A fájlok kiterjesztésétől függőre is beállíthatóak. A progarmok (.c, .h vagy .p kiterjesztéssel) általában lehetővé teszik az automatikus tördelést. Hasonlóképpen a szóelrejtés is általában lehetsés a fájlokban, de az rc fájlok ezt nem teszik lehetővé.
Amikor betűket gépelünk be a szövegszerkesztőbe ezeket beleteszi a file-ba amit
szerkesztünk ( vagy hozzá írja, ha a kurzor a file végen volt. ). Ez a
szövegszerkesztő, normális muködése. Ha létező szöveget akarunk kicserélni akkor
ezt a helyettesítes előtt vagy után ki kell törölnünk. A Backspace gombot
használhatjuk a szöveg törlésére: mozgassuk a kurzort a törölni kívánt szöveg
jobb oldalára majd nyomjunk nehányszor Backspace -t.
Nyomjuk meg az Enter vagy Return gombot, hogy sortörés-t szúrjunk be.
Például, ha a kurzor a sor közepén van és Return-t nyomunk, akkor, azt a sort
ketté töri, és a kurzor a második elején jelenik meg . Nyomjunk Backspace -t
egy sor elején, hogy kiküszöböljük a sortörést.
A nyilakkal tudunk a file-ban mozogni. Ha a billentyuzeten nincsenek nyíl billentyuk
(vagy valamilyen okból nem muködnek), akkor használjuk a ^F -t az előre
(jobbra), ^B -t vissza (ballra), ^P előző sorba(föl), és ^N
következő sorba (le) mozgásra. A jobb és ball nyilak egyszeruen egy betuvel előre
vagy vissza ugranak a szövegben: ha egy sor elején volt a kurzor, és balra lepünk,
akkor az előző sor végé jutunk. A le és föl nyilak annyi karaktert lepnek előre és
vissza, hogy a kurzor abban az oszlopban jelenjen meg amelyikben az eredeti sorban volt.
Ha be akarjuk szúrni a szöveget akkor a TAB -t használhatjuk. Ez egy speciális
vezérlő karaktert helyez el a szövegben amitől, az ezt követő karakter a következő
TAB STOP -nál kezdődik. TAB STOP-ok alapértelmezésben 8 oszloponként vannak, de ezt a
^T D -paranccsal meg lehet változtatni. PASCAL és C programozók gyakran
használnak 4 oszloponként TAB STOP-okat.
Ha valamilyen okból a terminál képe összezavarodik (pl, levél érkezésről kapunk
értesítést ), akkor a szövegszerkesztő a ^R -parancsra frissíti a képernyőt.
Sok más billentyuvel törölhetünk szöveget és mozoghatunk a file-ban. Például
nyomjunk ^D -t, hogy azt a karaktert töröljük amin állunk, ne a mögöttelévőt,
mint a Backspace. ^D is törli a sortörést, ha a kurzor a sor végén
volt. A ^Y kitörli a teljes sort amiben a kurzor van, a ^J a kurzor
pozíciójától a sor végéig.
A ^A parancsra a kurzor a sor elejére ugrik. A ^E parancsra a kurzor a sor
végére ugrik. Nyomjunk ^U vagy ^V -t és a kurzor fél képernyőt föl
vagy le ugrik . Ez azt jelenti, hogy a képernyő mozog, de a kurzor egy helyben marad a
képernyőn. Nyomjunk ^K U vagy ^K V -t hogy a kurzort a file elejére vagy
végére állítsuk. A szövegszerkesztő help -jében mégtöbb parancsot találunk
mozgásra és törlésre.
Ha egy hibát követünk el ^_ paranccsal "törölhetjük" azt. A
legtöbb billentyuzeten csak lenyomjuk a ^- -t, hogy megkapjuk a ^_ -t de
néhányon egyidejuleg a Shift -t és Control -t kell lenyomni, hogy
megkapjuk. Ha túl sokat "töröltünk" , akkor visszahozhatjuk az eredeti
szöveget a ^^ paranccsal (^6 a legtöbb billentyuzeten).
Ha a file egyik részét szerkesztjük, de ideiglenesen egy másik részét nézzük akkor
a ^K - paranccsal juthatunk vissza ez eredeti helyre. Ez a parancs valójában
visszavisz az utoljára szerkesztett helyre. A ^K - és ^K =, parancsokkal
több ilyen helyre is elugorhatunk, illetve a "törölt" és
"visszahozott" szövegek helyére is ugorhatunk.
Ha a file szerkesztését befejeztük, a ^K X paranccsal tudunk kilépni. Ekkor a
program rákérdez egy filenév -re, ha eddig nem neveztük el a file-t amit
szerkesztettünk.
A file szerkesztésekor valójában a filenak csak egy másolatát szerkesztjük. Így ha
úgy döntünk, hogy nem szeretnénk menteni a változásokat, akkor a ^C
paranccsal kiléphetünk mentés nélkül.
Ha szerkesztjük a file-t és elmentjük a változásokat, akkor az aktuális
könyvtárban keletkezik egy biztonsági másolat egy ~ -vel a filenév végén, ami az
eredeti verziót tartalmazza.
Ha egy C vagy PASCAL nyelvu file-ban a képernyő jobb széle mellett gépelünk akkor
a képernyő követni fogja a kurzor mozgását. Ha egy hagyományos file-ban (amely neve
nem vegződik .c, .h, .p -re)gépelünk a képernyő jobb szélén akkor a JOE
automatikusan átteszi az utolsó szót a következő sor elejére, hogy ne kellejen Return
nyomni. Ezt hívják szó-kezelési módnak. A Szó kezelés ki-be kapcsolható a ^T W
paranccsal. A JOE konfigurációs file-ja általában úgy van beállítva, hogy ezt a
módot használja a nem-program file-okra. Ezt és egyéb beállításokat a joerc
file-ban lehet változtatni.
A szókezelési módon kívul a JOE nem kezeli automatikusan a bekezdéseket, mint más
szövegszerkesztők. Ehelyett ha, egy bekezdést formázni akarunk akkor használjuk a ^K
J parancsot. Ez a parancs az aktuális bekezdést úgy formázza, hogy minden sorba a
lehető legtöbb karakter kerüljön. Ebben az esetben a bekezdés egy olyan egység amit
két üres sor határol.
A margókat amiket a JOE a szó kezelésre és formázásra használ a ^T L és ^T
R parancsokkal lehet állítani. Ha a baloldali margó nem egyre van beállítva akkor
a sor elején történő gépelésnél a kurzor rögtön a bal margóhoz ugrik.
Ha egy sort a margókon belul középre akarunk tenni, akkor ezt a ^KA paranccsal
tehetjük.
Néha fárasztó lehet a korábbi szöveg törlése, mielőtt, vagy miután új
szöveget viszünk be. Ez történik pl. mikor megváltoztatunk egy táblázatot és az
oszlopot a táblázatban jobbra akarjuk igazítani. Ha ez előfordul akkor az editort
átírás módba lehet kapcsolni a ^T T billentyukkel. Amikor az editor ilyen
módban van, akkor a begéplet karakterek felváltják a már meglevőket, ahogy ezt egy
idealizált írógép is tenné. Tehát, a Backspace billentyu egyszeruen balra
lép egyet, balra-törlés helyett, feltéve, hogy a kurzor nem a sor elején áll. Az
átírás mód nem kimondottan illik az elektronikus szövegfeldolgozás jellegéhez,
ezért javallt visszakapcsolni beszúrás módba, amint lehetséges, a már ismert ^T T
kombinációval.
Ha átírás módban mégis be kell szúrni valamit, üssük le a ^@. This
billentyut, ami egy szóköz karaktert illeszt a szövegbe.
Minden karaktert egy szám reprezentál. Pl. az 'A' betü kódja 65, míg mondjuk az '1' karakteré 49. Minden látható jel kódja a 32-126 intervallumba esik. (Ez a teljesen önkényes összerendelés a kódok és a jelek között az, amit ASCII karakterkód-tábla néven emlegetnek.) Az ezen az intervallumon kívül eső kódokhoz tartozó jelek csak ritkán jelennek meg a képernyőn, és közülük többnek is speciális jelentése van. Pl. a 10-es kódhoz tartozó jel a soremelést jelenti. Ezeket a speciális ún. kontrol karaktereket is be lehet gépelni úgy, hogy először leütjük a ` billentyut, majd egy karaktert ezek közül: @ A B C ... X Y Z [ ^ ] \ _, ahol a @,A,...,_ jelek rendre a 0..31 intervallum pontjait jelentik illetve a ? a 127-et. Pl. a ` J kombináció egy soremelés karaktert visz be a szövegbe, a ` I kombináció pedig egy TAB karaktert. Egy hasznos kontrol karakter a 12-es kódú jelhez: (` L), ami a legtöbb printeren az oldal tetejére ugrást jelenti. Nem szabad szem elől téveszteni azt a tényt, hogy a JOE ezt a jelet aláhúzott L betüként jeleníti meg. A 127-nél nagyobb kódú karaktereket, az ún. meta karaktereket, a ^\ kombinációval (ez 128-at ad hozzá az utána következő kódhoz), majd egy tetszőleges - akár vezérlő - karakter leütésével lehet bevinni. A JOE a 128-nál nagyobb kódú jeleket inverzben jeleníti meg. Bizonyos idegen nyelvek - amelyeknek több betü szerepel az abc-jükben, mint az angolban - a meta karaktereket használják kiegészítésként. Az editort ASIS (később tárgyalt) módba kell állítani ahhoz, hogy ezek a jelek változatlanul továbbítódjanak a terminál felé.
Ha bármely fájlnév-beviteli promptnál leütjük a TAB billentyut, a joe
megpróbálja kiegészíteni az addig begépelt szöveget, amennyire csak lehet. Ha nem
tudja kiegészíteni teljesen, mert pl. több folytatási lehetőség is van, akkor
hangjelzést kapunk. Ha ekkor ismét leütjük a TAB billentyut, akkor a JOE
felsorolja a lehetséges folytatásokat, amikből a kurzorvezérlő nyilak, illetve a
SPACE, vagy az ENTER segítségével választhatjuk ki a megfelelőt. Ha leütjük egy
fájl nevének kezdőbetüjét, akkor az kiválasztottá válik, vagy ha több fájl is
kezdődik a leütött karakterrel, akkor a kurzor ezek között fog körbejárni. Ha egy
alkönyvtárat választunk ki, akkor annak a neve hozzáadódik a prompthoz, a tartalma
pedig betöltődik a menübe. A Backspace billentyu megnyomásával visszakerülünk az
előző alkönyvtárba.
A legtöbb prompt megjegyzi a beírt sorokat, amikből később a fel-, ill. lenyíl
segítségével választhatunk.
A promptok valójában egyszeru egysoros, státuszsor nélküli ablakok, tehát bármely
szerkesztő-parancs használható a bennük levő szövegen. Vagyis a "prompt
history" tulajdonképpen a "prompt file" (az előbb említett ablak - a
ford.) többi sorát jelenti, amiben akár keresni is lehet visszafelé a megszokott ^KF
paranccsal.
Mivel a promptok ablakok, kapcsolgatni is lehet közöttük a ^K P, és a ^K N
parancsokkal.
Az aktuális sor-, oszlopkoordináta és karakter lekérdezéséhez üssük le a ^K SPACE kombinációt, ami a képernyő utolsó sorába írja az információkat. A karakter ASCII kódját is megtalálhatjuk itt. Azt is megtehetjük, hogy a sor- és oszlopkoordináta folyamatosan a képernyőn legyen, amihez a megfelelő escape-szekvenciát kell elhelyezni a joerc fájl "status line setup" sorába. Pontosabb információkért lásd a joerc fájlt.
Az aktuális fájl mentése a ^K D kombinációval lehetséges, akár más
néven is, mint ahogy a fájlt beolvastuk. Miután kimentettük, a ^K E
kombinációval egy másik fájl betöltése és szerkesztése is lehetséges.
Ha a fájlnak csak egy részét akarjuk menteni, ahhoz lásd a Blokkok bejegyzést!
Az aktuális fájlba egy másik fájl beszúrása is lehetséges a ^K R
kombinációval.
Az editor ideiglenes elhagyásához és a shellhez való visszatéréshez üssünk ^K Z-t! Erre akkor lehet szükség, ha pl. egy e-mail-re akarunk válaszolni, vagy man oldalt akarunk olvasni, stb. Az editorba való visszatéréshez géplejünk be: fg, vagy exit. (Hogy melyiket, azt az editor megmondja kilépéskor.)
Szöveg, ill. szövegtöredék keresése (előre és visszafelé is) a ^K F kombinációval lehetséges. A keresendő szöveget egy promptnál lehet bevinni. A Return lenyomása után a keresési opciókat egy újabb promptnál lehet megadni. Ha itt megint Return-t ütünk, akkor a keresés azonnal megkezdődik (előre), vagy választhatunk a következő opciók közül:
A ^L kombinációra az előbbi keresés megismétlődik.
Ahhoz, hogy
helyesen dolgozhass a JOE-val, sok más környezeti beállításnak helyesnek kell lennie.
A számítógép és a terminál közötti kapcsolat helyesen kell beállítva legyen
ahhoz, hogy a képernyő frissítése simán menjen. Használd a stty nnn parancsot ennek
beállítására. A beállitás közelítse meg az átvitel sebességét amennyire csak
lehet. Példaul ha te egy 1200 baud-os modemen keresztül vagy csatlakozva, akkor add meg
ezt az értéket a stty után. Ha egy 14.4 kbaud-os modemmel vagy csatlakozva, de a
terminál csak 9600 baud-ot bír, akkor állítsd a sebességet 9600 baud-ra. A
különösen magas 38400-as értéket vagy a extb parancsot a nagyon nagy sebességu
kapcsolat jelzésére lehet használni, ilyen a memóriatérképes konzol vagy egy
X-window-zos terminál emulátor. Ha nem tudnád hasznalni a stty parancsot az aktuális
átviteli sebesség beállítására (talán mert a modem más sebbességgel kommunikál a
számítógépeddel mint a telefonvonalon keresztül a másik géppel), megadhatsz egy
numerikus értéket a BAUD nevu környezetváltozóba (a következőképpen: setenv BAUD
9600 csh esetén, vagy BAUD=9600; export BAUD sh esetén).
A TERM környezetváltozónak az általad használt termináltípusnak megfelelően kell
beállítva lennie. Ha a terminálod mérete (sorok illetve oszlopok száma) eltér attól
ami a TERMCAP-ben vagy a TERMINFO-ban be van állítva, akkor ezeket megváltoztathatod a
stty rows nn cols nn paranccsal, vagy a LINES és a COLUMNS környezetváltozók
beállításával.
A JOE normálisan ^S/^Q-s módszert feltételez a számítógep es a terminálod közötti
folyamatos ellenőrzésre (azaz ha a számítógép túl gyorsan küldi a karaktereket a
terminálodra, akkor a terminálod egy ^S-sel jelzi a kimenet várakoztatását a másik
gépen és ^Q-val az újraindítást). Ha folyamatos ellenőrzésre out-of-band vagy
hardver handshaking használatos, vagy ha a terminálod majdnem mindig fogadni tudja a
számítógépről jövő karaktereket, akkor a NOXON környezetváltozó
beállításával megszüntetheted a JOE számára a ^S/^Q handshaking-et. Ha a
terminálod és a számítógép közötti összeköttetés nem handshaking-es, és a
terminálod nem elég gyors ahhoz, hogy folyamatosan fogadja a számítógép kimenetét,
akkor a DOPADDING környezetváltozó megfelelő beállításával lelassíthatod az
outputot a JOE számára úgy, hogy un. PAD karakterek kerülnek beszúrásra amikor a
terminál képernyőjének a frissitése történik.
Ha a JOE bárhol egy fájlnev megadását várja, akár a parancssorban akár egy editoron belüli promptnál, akkor a következőket lehet begépelni:
A ^T opciói, a help képernyői, stb. mind a JOE inicializációs fájljában vannak definiálva. Ha erről a fájlról (amely általában a /usr/local/lib/joerc útvonalon található) készítesz egy másolatot a $HOME/.joerc-ba, akkor a paramétereket beállíthatod saját ízlésed szerint. Az inicializációs fájl szintaktikája majdhogynem magától értetődő, de tartalmaz további instrukciókat is.
A JOE-t Joseph H. Allen írta. Ha kérdésed van, vagy hibát találtál írj a következő címre: jhallen@world.std.com. Larry Foard (entropy@world.std.com) és Gary Gray (ggray@world.std.com) sokat segített a JOE készítésében.
Fordították:
Vajda Kristóf