A JOE (http://joe-editor.sourceforget.net/) egy egyszerű, általtalános célú, színezni képes (syntax highlighting) szövegszerkesztő UNIX-ra.
Az alábbi felsorolásokban (E)-vel jelöltük azokat a hasznos tulajdonságokat, melyek más modern szövegszerkesztőkre általában nem jellemzőek.
Egyéb fontos szolgáltatásai:
- sima szövegfájlok szerkesztése, a sortörés és tabulátor helyes kezelése
- DOS-os soremelés 13-as karakterének elrejtése, akár automatikusan is
- Unicode-támogatás, fájl beolvasása különböző karakterkódolásokkal (pl. ISO-8859-2, UTF-8)
- (E) szövegfájl karakterkódolásának átállítása betöltés után is
- UTF-8-as terminál támogatása (
export LC_CTYPE=hu_HU.UTF_8)
- egérkezelés (kurzormozgatás, szövegkijelölés, szövegbeillesztés, aktív ablak megváltoztatása egérrel) XTerm-ben, a
-mouse opcióval.
- fájl megjelenítése és szerkesztése hex dumpként
- (E) fájl vagy eszköz egy részletének megnyitása szerkesztésre (pl. egy nagy partíciónak csak a boot szektorát)
- a rendszer terminálbeállításait (termcap) a felhasználó felülbírálhatja
- színezés (syntax highlighting) több, mint 40 beépített nyelvre, és a felhasználó is definiálhat nyelvet
- bizonyos programnyelvekre az aktív függvény nevének megjelenítése
- (E) az opciók és a billentyűkombinációk precíz testreszabásának lehetősége a konfigurációs fájlban
- (E) a rendelkezésre álló memóriánál nagyobb fájlok szerkesztésének lehetősége cserefájl segítségével
- környezetérzékeny súgó (nem túl bőbeszédű)
- egyidejűleg több fájl szerkesztése
- fájlok megnyitásakor stb. Tab-ra kiegészítés
- (E) beépített, kifejezés alapú számológép, a kijelölt szövegrész számaiból statisztikát is tud számolni
- (E) ugrás az XML tag, HTML tag vagy C preprocesszor direktíva párjára
- szövegkijelölés Shift+nyílbillentyűkkel
- szövegkijelölés mozgatása, másolása, törlése és szűrése (külső paranccsal)
- blokkos (téglalap alakú) kijelölés a szövegben
- (E) keresés C nyelvű részkifejezésre
- nevek kiegészítése tag-ek alapján (lásd a ctags programot)
- korlátlan visszavonás és visszaállítás
- (E) a beépített parancsok és a számológép felhasználásával egyszerű, elágazásokat is tartalmazó makrók definiálása
- a szokásos dolgok bármikor átállíthatók: tabulátor szélessége, automatikus beütés (autoindent), felülírás, szó átrakása a következő sorba (word wrap)
- (E) gazdagon testreszabható státuszsor, melyben megjeleníthető például a kurozorpozíció, a sor és oszlop száma, és az aktuális karakter kódja
- a kijelölt blokk sorai elején levő szőközök számának csökkentése és növelése (block indent)
- igény szerint a bemeneti fájl olvasása csővezetékről
- rávehető, hogy kilépéskor jegyezze meg a fájlpozíciókat, és a kiadott parancsok történetét (history), melyet következő indításkor visszatölt
- megjegyzi, hol járt az utóbbi alkalmakkor a kurzor (cursor position history)
- shell futtatása és kimenetének gyűjtése szerkesztőablakban (elég egyszerű)
További előnyei:
- (E) terminálos interfésze tejles értékű, SSH-n belül is ugyanolyan jól használható, mint helyben
- (E) nem destruktív: – sok más szövegszerkesztővel ellentétben – a fájl bájtjait automatikusan nem változtatja meg (pl. nem próbálja javítani el a fájl eltérő soremeléseket és hibás UTF-8 szekvenciákat tartalmazó részeit), és a fájlt az eredeti karakterkódolással menti
- (E) hatékonyan kezeli a terminált, lassú (2400 baudos) terminálokon is lehet vele dolgozni
- (E) a nagy és a hosszú sorokat tartalmazó fájlokban történő navigálás és szerkesztés során sem lassul le
- (E) bár használ termcapot és alkalmazkodik a locale-hez, az ezekhez nem igényel programkönyvtárat (bár tudja használni, ha van). Gyakori, hogy a locale rendszerszinten rosszul vagy hiányosan van beállítva; a JOE ekkor is jól működik.
- a színezés a legújabb verzióban folyamatosan helyes marad (ellentétben más szövegszerkesztőkkel, ahol esetleg a fájl újratöltése vagy frissítése szükséges a helyes színekhez)
- szerkesztett fájlok zárolása, külső módosítások érzékelése (Emacs-kompatíbilis módon)
- ugyanaz a fájl több ablakban is nyitva lehet
- (E) bekezdés újrafolyatás a soreleji idézőkarakter (pl.
>) megtartásával. Ez utóbbi e-mailben használatos.
- kényelmes, intuitív visszovonsás és visszaállítás, visszaállítás közben is meggondolhatjuk magunkat
- (E) a súgó tetszés szerint bővíthető, felülírható
- (E) ablakonként egyetlen státuszsort folgal csak el az értékes képernyőterületből, és a legfelső kikapcsolható
- (E) a programkód rövid, tömör: i386 Linuxra statikusan linkelve 450 kB alatt van
- (E) gyorsan, szinte azonnal elindul
- (E) takarékoskodik a memóriával
- az üzenetek tetszőleges nyelvre lefordíthatóak
Hátrányai:
- külön X11 ablakban nem tud futni
- Windows és egyéb, nem UNIX-os rendszereken nem fut
- nem következetesen jelenít meg egy 8-bites karakterkódolású fájlt egy másik 8-bites karakterkódolású terminálon
- a szövegbeli kereséshez használt reguláris kifejezései elég egyszerűek
- nincs hatákony szkriptelési lehetőség (olyan, mint VI-ban vagy Emacs-ben)
- a színezés, mivel véges automata alapú, nem szkriptelhető tetszőlegesen
- nem mutatja annak a zárójelnek a párját, ahol a kurzor áll (de oda tud ugrani, több-kevesebb sikerrel)
- nem tartalmaz fejlett eszközöket szoftverfejlesztéshez (pl. integrált nyomkövetés, okos kódkiegészítés, fordítás után ugrás a hiba helyére (van, de nem nyelvfüggő), refaktorálás, függvénytörzsek elrejtése)
- nem tud jobbról balra írást (pl. arab, héber)
- nem tud helyesírás-ellenőrizni a háttérben
- a keresés találatait nem tudja kiszínezni
- nincs benne FTP, SCP stb. kliens
- nem tud tömörített fájlokba belenézni
- 16-bites karakterkódolású (pl. UCS-16 és BIG5) fájlokat nem tud szerkeszteni
- nincs makrórögzítés
- nem tud karakterkódolások közt konvertálni
A JOE használata kifejezetten ajánlott az alábbi esetekben:
- ha a fájlban csak néhány bájtot kell átírni, és fontos, hogy a többi bájt változatlan maradjon
- SSH-n keresztül
- lassú kapcsolaton (pl. betárcsázós internet, vagy leterhelt szélessávú internet-kapcsolat)
- ha megbízható, minden esetben jól működő színezésre van szükség
- ha fura probléma van egy szövegfájllal (ránézésre jó, mégis az őt feldolgozó program hibaüzenetet ad), és szeretnénk látni minden bájtot (időnként hex módba váltva)
- nagy fájlok és hosszú sorokat tartalmazó fájlok szerkesztésekor
- apró módosítások bináris fájlban
A JOE használata nem ajánlott az alábbi esetekben:
- sokfájlos szoftver fejlesztéskor
- speciális, jól automatizálható szerkesztési műveletekre
- sok fájl közötti gyors váltogatásra
A JOE a legtöbb Linux-disztribúcióban csomagként megtalálható. A csomagok azonban általában régiek, érdemes tehát a JOE-t forrásból fordítani.
A nagyobb munkahatékonyság érdekében érdemes saját ~/.joerc fájlt készíteni, felvéve bele a saját beállításokat és billentyűkombinációkat.