Provided by:
manpages-pl_20051117-1_all 
NAZWA
joe - "własny edytor Joe'go" (Joe's Own Editor)
SKŁADNIA
joe [opcje_globalne] [ [opcje_lokalne] nazwapliku ]...
jstar [opcje_globalne] [ [opcje_lokalne] nazwapliku ]...
jmacs [opcje_globalne] [ [opcje_lokalne] nazwapliku ]...
rjoe [opcje_globalne] [ [opcje_lokalne] nazwapliku ]...
jpico [opcje_globalne] [ [opcje_lokalne] nazwapliku ]...
OPIS
JOE jest pełnoekranowym edytorem ASCII mającym duże możliwości. Brak
trybów pracy interfejsu (w przeciwieństwie do np. vi) powoduje, że
bardziej przypomina przyjazne edytory PC. Użytkownicy WordStara czy
środowisk "turbo" firmy Borland poczują się jak w domu. JOE jest w
pełni funkcjonalnym ekranowym edytorem unixowym i posiada wiele funkcji
edycji programów i tekstu.
JOE emuluje również kilka innych edytorów. JSTAR jest dość wierną
imitacją WordStara z wieloma rozszerzeniami JOE. JPICO jest bliską
imitacją edytora PICO z systemu pocztowego Pine. JMACS jest imitacją
GNU-EMACSa. RJOE jest okrojoną wersją JOE, umożliwiającą edycję tylko
tych plików, które zostały podane w linii poleceń.
Mimo, iż JOE jest faktycznie pięcioma różnymi edytorami, to nadal
wymaga tylko jednego pliku wykonywalnego, jedynie z pięcioma różnymi
nazwami. Nazwa edytora z dodanym rc stanowi nazwę pliku inicjującego
JOE'go; decyduje on zachowaniu się edytora.
JOE jest darmowym oprogramowaniem: możesz go rozpowszechniać i/lub
zmieniać na warunkach licencji GNU General Public License opublikowanej
przez Free Software Foundation. Nie planuję przekształcenia JOE w
produkt komercyjny czy shareware'owy. JOE jest dostępny przez Internet
za pośrednictwem anonimowego FTP z ftp.std.com, plik:
src/editors/joe*.tar.Z.
UŻYCIE
Uruchomienie edytora następuje przez wpisanie joe oraz zera lub więcej
nazw plików, jakie chcesz edytować. Każda z nazw pliku może być
poprzedzona ustawieniem opcji lokalnej (patrz tablica opcji lokalnych,
niżej). W linii poleceń mogą być też umieszczone inne opcje, globalne,
odnoszące się do całego edytora (patrz poniżej tablica opcji
globalnych). Jeśli edytujesz nowy plik, to możesz nadać mu nazwę albo
przy wywołaniu edytora albo w edytorze, w momencie zapisu pliku.
Dostępna jest zmodyfikowana składnia nazw plików, tak by umożliwić ci
edycję wyników programów, standardowego wejścia/wyjścia czy części
plików lub urządzeń. Szczegóły znajdziesz dalej, w sekcji Nazwy plików.
Po uruchomieniu edytora możesz wpisywać tekst lub posługiwać się
specjalnymi sekwencjami znaków sterujacych, by wykonać inne zadania
edycyjne. Opis sekwencji sterujących znajduje się w dalszej części
niniejszej dokumentacji. Możesz też użyć kombinacji klawiszy ^K H,
przywołującej pomoc w edytorze.
Teraz trochę wyjaśnień mętnych nauk komputerowych:
Zapis ^ oznacza, że przytrzymujesz klawisz Control w trakcie naciskania
następnego klawisza (w ten sam sposób działa Shift przy uzyskiwaniu
dużych liter). Wiele sekwencji sterujących powielonych jest przez inne
klawisze, zatem nie zawsze musisz naciskać klawisz Control: ESC będzie
działać jak ^[, Del zadziała zamiast ^?, Backspace zamiast ^H, Tab
zamiast ^I, Return lub Enter działają jak ^M, zaś Linefeed działa tak
jak ^J. Niektóre klawiatury mogą sprawić kłopoty z pewnymi klawiszami
sterującymi. ^_, ^^ oraz ^@ zwykle mogą być wprowadzone bez
naciśnięcia shift (spróbuj ^-, ^6 i ^2). Inne klawiatury mogą
przypisywać je do innych klawiszy. Wypróbuj: ^., ^, i ^/. Zwykle
zamiast ^@ możesz użyć ^SPACE. ^\ i ^] interpretowane są przez wiele
programów komunikacyjnych, włączając w to telnet i kermit. Zwykle po
prostu naciskasz klawisz dwukrotnie, by przeszedł przez program
komunikacyjny.
Po wpisaniu ^K H na górze ekranu pojawi się okno pierwszej pomocy.
Możesz nadal wprowadzać i edytować tekst przy włączonym oknie pomocy.
Zmianę stron z kolejnymi tematami pomocy uzyskasz naciskając ^[ i ^[
(to jest ESC i ESC). Wygaszenie okna z pomocą uzyskasz kombinacją ^K H.
Możesz dostosować układ klawiatury, ekrany pomocy i wiele domyślnych
sposobów zachowywania się edytora kopiując plik inicjujący JOE'go
(zwykle usr/local/lib/joerc) jako .joerc do swego katalogu domowego i
zmieniając go. Patrz sekcja joerc poniżej.
Jeśli chcesz by JOE był używany jako twój domyślny edytor dla e-mail i
News, powinieneś ustawić zmienne środowiska EDITOR oraz VISUAL w pliku
inicjującym swojej powłoki (.cshrc lub .profile), tak by wskazywały na
JOE'go (zwykle znajduje się on w /usr/local/bin/joe).
Istnieje wiele innych nieoczywistych parametrów wywołania, jakie być
może muszą być ustawione, szczególnie, gdy ekran twojego terminala nie
jest odświeżany tak, jakbyś tego oczekiwał. Patrz sekcja Zmienne
środowiska.
OPCJE LINII POLECEŃ
W linii poleceń można podać następujące opcje globalne:
-asis Znaki o kodach powyżej 127 będą wysyłane do terminala bez zmian,
zamiast zastępowania ich negatywami odpowiednich znaków o kodach
poniżej 128. Jeśli nie działa, to sprawdź serwer terminala.
[od tłum: opcja niezbędna do prawidłowej obsługi polskich
znaków]
-backpath cieka
Po podaniu tej opcji, pliki kopii zapasowych będą zapisywane w
zadanym katalogu zamiast w pierwotnych katalogach każdego z
plików.
-baud nnn
Ustawia prędkość transmisji (baud rate) dla celów optymalizacji
ekranu terminala. Joe wstawia opóźnienia dla prędkości niższych
od 19200, które omijają buforowanie terminala, tak że znaki
pisane z wyprzedzeniem mieszają się z wyjściem ekranu. Polecenia
przewijania nie będą używane dla 38400 bitów/s. Przydatne dla
X-terminali oraz innych terminali konsoli, które nie są naprawdę
połączone przez łącze szeregowe.
-beep Joe będzie sygnalizował dźwiękiem błędy poleceń i przekroczenie
przez kursor granic tekstu.
-columns nnn
Ustala liczbę kolumn ekranu.
-csmode
Tryb kontynuacji wyszukiwania: wyszukiwanie następujące
bezpośrednio po innym będzie powtarzać poprzednie zamiast prośby
o nowy łańcuch znakowy do wyszukania. Przydatne dla poleceń ^[S
i ^[R oraz gdy joe próbuje udawać emacsa.
-dopadding
Joe zwykle zakłada, że pomiędzy nim a temirnalem istnieje jakiś
rodzaj sterowania przepływem danych. Jeśli tak nie jest, opcja
ta spowoduje, że joe będzie wysyłał dodatkowe ^@ do terminala,
jak podano we wpisie do termcap. Dodatkowe ^@ pozwalają
terminalowi nadgonić po długich poleceniach tty.
-exask Powoduje weryfikację przez ^KX nazwy pliku, jaki ma zostać
zapisany.
-force Ta opcja upewnia się, że ostatnia linia tekstu zakończona jest
znakiem line-feed (koniec linii).
-help Po podaniu tej opcji edytor uruchomi się z ekranem pomocy.
-keepup
Normalnie numer kolumny tekstu oraz pola przedrostka klawisza
sterującego w liniach statusu wyświetlane są z jednosekundowym
opóźnieniem, by zredukować obciążenie procesora. Opcja ta
powoduje, że są one aktualizowane po każdym naciśnięciu
klawisza.
-lightoff
Użycie tej opcji powoduje wyłączanie podświetlenia bloku tekstu
po dowolnym poleceniu działającym na bloku.
-lines nnn
Ustala liczbę linii ekranu.
-marking
Podświetlany jest tekst pomiędzy ^KB a kursorem (użyj z opcją
-lightoff i zmienionym plikiem joerc by uzyskać wybieranie bloku
metodą ciągnięcia). (drop-anchor style block selection).
-mid Przy włączeniu tej opcji jeśli kursor przesuwa się poza okno, to
okno jest przewijane, tak by kursor był pośrodku. Opcja ta jest
wymuszana na powolnych terminalach, które nie posiadają poleceń
przewijania (scrolling).
-nobackups
Ocja ta wyłącza tworzenie plików kopii zapasowych.
-nonotice
Wyłącza wyświetlanie informacji o prawach autorskich podczas
uruchamiania edytora.
-nosta Wyłącza górną linię statusu. Miłe, jeśli chcesz widzieć na
ekranie tylko swój tekst lub używasz vt52.
-noxon Próbuje wyłączyć przetwarzanie ^S/^Q. Przydatne, gdy joe próbuje
być WordStarem lub emacsem.
-orphan
Jeżeli włączona jest ta opcja, to dodatkowe pliki z linii
poleceń będą umieszczone w nieprzypisanych buforach (orphaned
buffers), zamiast w dodatkowych oknach. Przydatne, gdy joe
próbuje być emacsem.
-pg nnn
Podaje liczbę linii pozostawianych po użyciu PgUp/PgDn (^U/^V).
Użycie wartości -1 oznacza połowę okna.
-skiptop nnn
Nie używaj nnn górnych linii ekranu. Przydatna, gdy joe używany
jest jako edytor BBS.
Każda z powyższych opcji może także zostać użyta w pliku joerc.
Ponadto, opcje NOXON, BAUD, LINES, COLUMNS i DOPADDING mogą zostać
ustawione jako zmienne środowiska.
Do ustalenia typu swego terminala możesz ustawić zmienną środowiska
JOETERM, zasłaniającą typową zmienną TERM.
Przed każdą nazwą pliku można użyć poniższych opcji:
+nnn Kursor na starcie ustawia się w zadanej linii.
-crlf Joe używa CR-LF jako sekwencji kończącej linię zamiast tylko LF.
Do edycji plików MS-DOS lub VMS.
-wordwrap
Joe przenosi poprzedni wyraz, jeśli piszesz poza prawym
marginesem.
-autoindent
Jeżeli naciśniesz Return w linii z wcięciem, to wcięcie jest
powtarzane w nowej linii.
-overwrite
Pisanie nadpisuje istniejące znaki zamiast wstawiania przed
nimi.
-lmargin nnn
Ustawia lewy margines.
-rmargin nnn
Ustawia prawy margines.
-tab nnn
Ustawia szerokość tabulacji.
-indentc nnn
Ustawia znak wcięcia (indent) dla ^K, i ^K. (32 dla SPACE, 9 dla
TAB).
-istep nnn
Ustawia krok wcięcia dla ^K, i ^K..
-linums
Przed każdą linią wyświetlany jest numer linii.
-rdonly
Plik jest tylko do odczytu.
-keymap nazwa
Użyj innej sekcji pliku joerc do przypisań sekwencji klawiszy.
Opcje te mogą być także podane w pliku joerc. Mogą być ustawione w
zależności od rozszerzenia pliku. Programy (rozszerzenia .c, .h lub .p)
mają zwykle włączone automatyczne wcięcia (autoindent). Dla innych
plików włączone jest przenoszenie wyrazów (wordwrap), ale pliki rc mają
je wyłączone.
ZADANIA EDYCJI
Prosta edycja
Kiedy wpisujesz znaki w edytorze, są one zwykle wstawiane do
edytowanego pliku (lub dołączane do pliku, jeśli kursor jest na końcu
pliku). Jest to normalny tryb pracy edytora. Jeżeli chcesz zastąpić
fragment istniejącego tekstu, musisz usunąć stary tekst przed lub po
wpisaniu tekstu go zastępującego. Do usuwania tekstu można użyć
klawisza backspace: przesuń kursor w prawo, za tekst, który chcesz
usunąć i naciskaj backspace aż do uzyskania pożądanego efektu.
Naciśnij klawisz Enter lub Return by wstawić złamanie linii. Na
przykład, jeśli kursor był pośrodku linii i nacisnąłeś Return, to
wówczas linia zostanie podzielona na dwa linie, a kursor pojawi się na
początku drugiej linii. Naciśnij backspace na początku linii aby
zlikwidować podział linii.
Do przemieszczania się wewnątrz pliku użyj klawiszy strzałek. Jeżeli
twoja klawiatura nie ma klawiszy strzałek (lub z jakiegoś powodu nie
działają), użyj ^F do przesunięcia naprzód (w prawo), oraz ^N, by
przesunąć się do następnego linii (w dół). Klawisze strzałek w prawo i
w lewo po prostu przesuwają w tekście do przodu i do tyłu o jeden znak:
jeśli jesteś na początku linii i naciśniesz strzałkę w lewo,
przesuniesz się na koniec poprzedniej linii. Strzałki w górę i w dół
przesuwają w przód i wstecz o liczbę znaków niezbędną, by kursor
pojawił się w tej samej kolumnie, w której był w linii początkowej.
Jeżeli chcesz utworzyć wcięcie we wprowadzanym tekście, możesz posłużyć
się klawiszem TAB. Wstawia on specjalny znak sterujący, który powoduje,
że następujące po nim znaki rozpoczynają się od następnej pozycji
tabulacji (tab stop). Pozycje tabulacji normalnie rozmieszczone są co 8
kolumn, ale można to zmienić przy pomocy polecenia ^T D. Programujący w
Pascalu czy C często ustawiają pozycje tabulacji co 4 kolumny.
Jeżeli z jakiegoś powodu zobaczysz bałagan na ekranie swojego terminala
(na przykład, gdy otrzymasz powiadomienie o poczcie z biff), możesz
nakazać edytorowi odświeżenie ekranu naciskając ^R.
Istnieje jeszcze wiele innych klawiszy służących do usuwania tekstu i
nawigacji w obrębie pliku. Na przykład, naciśnięcie ^D usuwa znak, na
którym stoi kursor zamiast usuwania wstecz jak czyni to backspace. ^D
usunie również znak podziału linii, jeśli kursor znajduje się na końcu
linii. Naciśnij ^Y by usunąć całą linię, w której znajduje się kursor
lub ^J by usunąć tekst od kursora do końca linii.
Naciśnięcie ^A przesuwa kursor na początek linii, w której się on
znajduje. Podobnie ^E przemieszcza kursor na koniec linii. Klawisze ^U
i ^V przewijają kursor odpowiednio w górę i w dół o połowę wysokości
ekranu. "Przewijanie" oznacza, że przesuwa się tekst na ekranie, lecz
kursor pozostaje w tym samym miejscu na ekranie. Możesz przesunąć
kursor na początek lub na koniec pliku naciskając ^K U lub ^K V.
Przeglądając ekrany pomocy edytora zapoznasz się z wieloma innymi
poleceniami kasowania i przemieszczania.
W przypadku popełnienia pomyłki możesz nacisnąć ^_ by ją wycofać
(undo). Na większości klawiatur wystarczy nacisnąć ^- by uzyskać ^_,
ale na niektórych być może będziesz musiał przytrzymać równocześnie
klawisze Shift i Control by uzyskać prawidłowy efekt. Jeżeli wycofasz
zbyt dużo zmian, możesz je przywrócić (redo) do stanu przed cofnięciem
- naciśnij ^^ (wystarczy ^6 na większości klawiatur).
Jesli prowadzisz edycję w jednym miejscu pliku, a chciałbyś na chwilę
oglądnąć lub poprawić inne miejsce pliku, możesz powrócić do
poprzedniego miejsca naciskając ^K -. Polecenie to faktycznie cofa cię
do ostatniego miejsca, w którym dokonałeś zmian w pliku. Możesz chodzić
po historii miejsc przy pomocy ^K - i ^K = w ten sam sposób, w jaki
przemieszczasz się przez historię zmian poleceniami "wycofaj" i
"przywróć".
Po zakończeniu edycji pliku naciśnij ^K X, by opuścić edytor. Jeżeli
jeszcze nie nazwałeś edytowanego pliku zostaniesz zapytany o nazwę.
Podczas edycji pliku pracujesz faktycznie na kopii pliku. Tak więc,
jeżeli zdecydujesz, że nie chcesz zmian przeprowadzonych w danej sesji
edycji, możesz nacisnąć ^C. Opuścisz wówczas edytor bez zapisywania
zmian.
Jeżeli edytujesz plik i zachowasz zmiany, w bieżącym katalogu zostanie
utworzona jego kopia zapasowa. Zawiera ona pierwotną wersję pliku i ma
nazwę oryginału zakończoną przyrostkiem ~.
Przenoszenie wyrazów i formatowanie
Jeśli w pliku z kodem Pascala lub C piszesz poza prawą krawędzią
ekranu, to ekran przewinie się w prawo, podążając za kursorem. Jeżeli
piszesz poza prawą krawędzią ekranu w zwykłym pliku (którego nazwa nie
kończy się na tak że nie musisz naciskać Return. Nazywa się to trybem
przenoszenia (zawijania) wyrazów (word-wrap mode). Przenoszenie wyrazów
można włączać i wyłączać poleceniem ^T W. Plik inicjujący JOE'go jest
zwykle skonfigurowany tak, że tryb ten jest automatycznie włączany dla
wszystkich plików nie będących programami. Poniżej, w sekcji opisującej
joerc dowiesz się, jak zmieniać tę i inne akcje domyślne.
Poza trybem przenoszenia wyrazów JOE nie formatuje automatycznie
akapitów jak niektóre procesory tekstu. Natomiast, jeżeli chcesz
zreformatować akapit, naciśnij ^K J. Polecenie to "wypełnia" akapit, w
którym znajduje się kursor, umieszczając tyle wyrazów w linii, ile to
jest możliwe. Akapit, w tym przypadku, jest blokiem tekstu oddzielonym
powyżej i poniżej pustą linią.
Marginesy, używane przez JOE'go do formatowania akapitów i przenoszenia
wyrazów mogą być ustawione poleceniami ^T L i ^T R. Jeżeli lewy
margines ustawiony jest na wartość różną od 1, to gdy rozpoczniesz
pisanie na początku linii, kursor natychmiast przeskoczy do lewego
marginesu.
Możesz wycentrować linię pomiędzy marginesami używając polecenia ^K A.
Tryb nadpisywania
Konieczność usuwania starego tekstu przed lub po wstawianiu nowego bywa
męcząca. Zdarza się to, na przykład, jeśli zmieniasz tabelę i chcesz
zachować pozycję kolumny po prawej stronie tabeli. W tym przypadku
możesz przestawić edytor w tryb nadpisywania przy pomocy ^T T. Gdy
edytor pracuje w tym trybie, wpisywane przez ciebie znaki zastępują
istniejący tekst jak zrobiłaby to idealna maszyna do pisania. Również
backspace po prostu przesuwa w lewo zamiast usuwania znaku po lewej,
jeżeli nie jest na końcu lub na początku linii. Nadpisywanie nie jest
naturalnym sposobem pracy elektronicznej z tekstem, powinieneś więc
możliwie szybko powrócić do trybu wstawiania naciskając powtórnie ^T T.
Jeżeli potrzebujesz wstawienia w trybie nadpisywania, naciśnij ^@.
Polecenie to wstawia pojedynczy odstęp (SPACE) do tekstu.
Znaki sterujące Ctrl i metaznaki
Każdy znak reprezentowany jest przez numer. Na przykład, `A' ma numer
65, zaś `1' ma numer 49. Wszystkie znaki, które zwykle widzisz, mają
numery od 32 do 126 [tłum.:nie dotyczy to specyficznych polskich
znaków]. To szczególne, arbitralne przypisanie znaków do numerów
nazywane jest zestawem znaków ASCII. Liczby poza tym zakresem, od 0 do
255, nie są zwykle wyświetlane, lecz czasami mają inne, specjalne
znaczenie. Liczba 10, na przykład, używana jest do zmiany (łamania)
linii. Możesz wprowadzać takie specjalne, nie wyświetlane znaki
sterujące Ctrl (control characters) naciskając najpierw ` a następnie
znak z zakresu @ A B C ... X Y Z [ ^ ] \ _, by uzyskać znaki o numerach
0 - 31 oraz ? by uzyskać znak 127. Na przykład, jeżeli naciśniesz ` J,
wstawisz znak końca linii; wciśnięcie ` I wstawia znak TAB (który robi
to samo, co klawisz TAB). Przydatnym znakiem sterującym jest znak numer
12 (` L), który w większości drukarek powoduje wysuw do początku
strony. Zauważysz, że JOE wyświetla go jako podkreślone L. Możesz też
wprowadzać znaki o numerach (kodach) powyżej 127, metaznaki (meta
characters), naciskając najpierw ^\. Dodaje to 128 do następnego
wprowadzonego znaku (prawdopodobnie sterującego). JOE wyświetla zaki o
kodach powyżej 128 w negatywie (inwersji). Niektóre języki,
posuiadające więcej liter niż język angielski, używają metaznaków dla
pozostałych, brakujących liter alfabetu. Musisz przełączyć edytor w
tryb ASIS (dosł."tak jak jest"), opisany dalej, by znaki te nie
podlegały tłumaczeniu przy przesyłaniu do terminala.
Zapytania edytora
Jeśli naciśniesz TAB w dowolnym zapytaniu o nazwę pliku, to joe
spróbuje, jeśli to możliwe, uzupełnić wprowadzoną przez ciebie nazwę.
Jeżeli nie może uzupełnić całej nazwy, gdyż istnieje więcej niż jedna
możliwość uzupełnienia, zasygnalizuje to dźwiękiem. Po ponownym
naciśnięciu TAB, joe wyświetli listę pasujących nazw. Możesz użyć
klawiszy strzałek do nawigacji po menu katalogu i nacisnąć RETURN lub
SPACE, by wybrać pozycję. Jeżeli naciśniesz pierszą literę jednej z
pozycji katalogu, zostanie ona wybrana. Jeśli więcej niż jedna pozycja
zaczyna się tą literą, to kursor będzie przemieszczał się pomiędzy
nimi. Wybór podkatalogu lub .. powoduje, że nazwa katalogu zostanie
dodana do nazwy pliku a do menu zostanie załadowany nowy katalog.
Możesz nacisnąć backspace, by powrócić do poprzedniego katalogu.
Większość zapytań pamięta odpowiedzi, jakich im udzieliłeś. Możesz użyć
strzałek w górę i w dół, by korzystać z list historii odpowiedzi.
Zapytania są faktycznie prostymi jednolinijkowymi oknami bez linii
statusu. Możesz więc użyć w nich dowolnego z poleceń, jakich normalnie
używasz przy pracy z tekstem. Historia zapytania jest naprawdę po
prostu innymi liniami tego samego "pliku zapytania". Zatem, jeśli
chcesz, możesz w niej użyć wyszukiwania przy pomocy polecenia ^K F.
Ponieważ polecenia są oknami, możesz także przełączać się z nich
sekwencjami ^K P i ^K N.
Gdzie jestem?
Naciśnij ^K SPACE, by JOE podał ci w ostatniej linii ekranu numer
linii, kolumny i numer kolejny bajtu. Możesz na stałe włączyć
wyświetlanie numeru linii i/lub kolumny w linii statusu umieszczając
odpowiednie sekwencje escape w łańcuchach znakowych ustalających linię
statusu. Szczegóły znajdziesz w pliku joerc. Pokazana jest również
liczba skojarzona ze znakiem, na którym stoi kursor (jego kod ASCII).
Operacje na plikach
Polecenie ^K D zapisuje bieżący plik (niekoniecznie pod nazwą, pod jaką
był pierwotnie wywołany). Po zapisie pliku możesz nacisnąć ^K E i
edytować inny plik.
Jeżeli chcesz zachować jedynie wybrany fragment pliku, przeczytaj niżej
sekcję na temat bloków.
Możesz włączyć zawartość innego piku do pliku aktualnie edytowanego,
naciskając ^K R.
Chwilowe wstrzymanie pracy z edytorem
Jeżeli potrzebujesz chwilowo opuścić edytor i wrócić do powłoki,
naciśnij ^K Z. Możesz w ten sposób wstrzymać pracę, by odpowiedzieć na
wiadomość e-mail czy, na przykład, poczytać tę stronę podręcznika. W
celu powrotu do edytora będziesz musiał wpisać fg albo exit (dowiesz
się, które z nich, po naciśnięciu ^K Z).
Wyszukiwanie tekstu
Naciśnięcie ^K F powoduje, że edytor będzie szukał w przód lub wstecz
fragmentu tekstu (łańcucha znaków - string). Zostaniesz zapytany o
tekst do wyszukania. Po naciśnięciu Return, otrzymasz kolejne pytanie,
o opcje. Możesz po prostu powtórnie nacisnąć Return - edytor
natychmiast poszuka tekstu w pozostałej części pliku (wyszukiwanie do
przodu). Możesz również wybrać jedną z poniżsych opcji:
b Wyszukaj wstecz zamiast w przód.
i Podczas wyszukiwania traktuj duże i małe litery jak takie same.
Normalnie duże litery i małe litery uważane są za różne.
nnn (gdzie nnn jest liczbą) Jeśli wprowadzisz liczbę, JOE szuka N-
tego wystąpienia tekstu. Jest to przydatne do przechodzenia do
szczególnych miejsc pliku mającego jakąś regularną strukturę.
r Zastąp tekst. Po wprowadzeniu opcji r zostaniesz zapytany o
tekst zastępujący. Każdorazowo, gdy edytor znajdzie szukany
tekst, będziesz pytany, czy chcesz zastąpić znaleziony tekst
tekstem zastępującym. Naciskasz: y by zastąpić tekst i wyszukać
następne wystąpienie, n by nie zastępować tekstu, ale szukać
kolejnego wystąpienia, r by zastąpić wszystkie pozostałe
wystąpienia tekstu w pozostałej części pliku bez pytania o
potwierdzenie (z zastrzeżeniem opcji nnn, omówionej powyżej),
albo ^C by zatrzymać wyszukiwanie i zastępowanie.
Polecenie ^L powtarza poprzednie wyszukiwanie.
Wyrażenia regularne
Jako tekst szukany mogą być wprowadzone specjalne sekwencje znaków:
\* Znajduje zero lub więcej znaków. Na przykład, jeżeli jako tekst
szukany podasz A\*B, JOE spróbuje znaleźć A, po którym następuje
dowolna liczba znaków, a następnie B.
\? Znajduje dokładnie jeden znak. Na przykład, jeśli jako tekst do
wyszukania podasz A\?B, to JOE znajdxie AXB, ale nie AB czy
AXXB.
\^ \$ Oznaczają odpowiednio początek i koniec linii. Na przykład,
podanie \^test\$ spowoduje wyszukanie linii zawierającej
wyłącznie test.
\< \> Oznaczając poczatek i koniec wyrazu. Na przykład, podanie
\<\*kot\*\> powoduje wyszukiwanie całych słów, w których
znajduje się podciąg (fragment) kot (np. kot, kotwica, stukot).
\[...] Dopasowuje dowolny pojedynczy znak spośród wymienionych w
nawiasach kwadratowych. Na przykład, jeżeli jako tekst do
wyszukania podano \[Cc]oś, to JOE odnajduje zarówno Coś jak i
coś. Wewnątrz nawiasów kwadratowych można użyć zakresu znaków.
Na przykład, \[A-Z] znajduje dowolną dużą literę łacińską. Jeśli
pierwszym znakiem wewnątrz nawiasów jest ^, to JOE szuka
dowolnego znaku różnego od podanych w nawiasach.
\c Działa jak \*, ale dopasowuje całe wyrażenie języka C. Na
przykład, jeżeli szukasz malloc(\c), to JOE odnajdzie wszystkie
wywołania funkcji malloc, nawet jeśli wewnątrz nawiasów jest
inny ).
\+ Znajduje zero lub więcej znaków następujących bezpośrednio po
\+. Na przykład, po podaniu \[ ]\+\[ ], gdzie znakami wewnątrz
nawiasów są zarówno SPACE jak i TAB, JOE odnajdzie białe znaki.
\\ Oznacza pojedyncze \.
\n Znajduje znak specjalny końca linii lub zmiany linii.
Wiele specjalnych sekwencji znaków może być również użytych w tekście
zastępującym:
\& Ta sekwencja zastępowana jest przez tekst dopasowany w szukanym
łańcuchu znaków. Na przykład, jeżeli szukano łańcucha \<\*\>,
który dopasowuje słowa, zaś jako łańcuch zastępujący podano
"\&", to JOE umieści znaki cudzysłowu wokół wyrazów.
\0 - \9
Zastępują tekst dopasowany przez N-te wystąpienie \*, \?, \+,
\c, \+ lub \[...] w szukanym łańcuchu.
Użyj tej sekwencji, jeśli potrzebujesz \ w łańcuchu zastępującym.
\n Użyj tej sekwencji, jeśli potrzebujesz zmiany linii w łańcuchu
zastępującym.
Kilka przykładów:
Załóżmy, że masz listę adresów, każdy w osobnej linii. Linie zaczynają
się od "Adres:" a każdy element adresu jest oddzielony przecinkiem. Jak
to:
Adres: S. Holmes, 221b Baker St., London, England
Jeżeli chciałbyś zmienić układ listy, tak by na początku był kraj,
potem miasto, nazwisko osoby a na końcu adres, możesz zrobić to tak:
Wpisz ^K F by rozpocząć szukanie. Następnie wprowadź łańcuch do
wyszukania:
Adres:\*,\*,\*,\*\$
by dopasować "Adres:", cztery elementy rozdzielone przecinkami oraz
koniec linii. Przy zapytaniu o opcje, wybierz r, gdyz chcemy zastępować
wyszukany łańcuch. Potem podaj łańcuch zastępujący:
Adres:\3,\2,\0,\1
co powinno przetasować informację w wymagany przez ciebie sposób. Po
naciśnięciu return rozpocznie się wyszukiwanie, a przykładowa linia
zostanie zmieniona na:
Adres: England, London, S. Holmes, 221b Baker St.
Bloki tekstu
Chcąc przesuwać, powielać, zapisywać czy usuwać zadane fragmenty tekstu
możesz posłużyć się podświetlanymi blokami. Najpierw przesuń kursor na
początek fragmentu tekstu, z którym chcesz pracować i naciśnij ^K B.
Następnie przesuń kursor na znak zaraz za końcem interesującego cię
tekstu i naciśnij ^K K. Tekst pomiędzy ^K B i ^K K powinien się
podświetlić. Możesz teraz przemieścić kursor w jakieś inne miejsce
dokumentu i nacisnąć ^K C by wstawić kopię podświetlonego tekstu w
miejsce wskazane kursorem. ^K Y usuwa podświetlony tekst. ^K W
zapisuje podświetlony tekst do pliku.
Bardzo przydatnym poleceniem jest ^K /, które filtruje blok tekstu przy
pomocy polecenia unixowego. Na przykład, jeżeli przez ^K B i ^K K
wybierzesz listę wyrazów, a następnie wpiszesz ^K / sort, to lista ta
zostanie posortowana. Innym użytecznym poleceniem unixowym zastosowanym
na blokach tekstu jest tr. Jeśli wpiszesz ^K / tr a-z A-Z, to wszystkie
litery alfabetu łacińskiego użyte w podświetlonym tekście zostną
zamienione na duże.
Po zakończeniu pracy z blokiem tekstu możesz, jeśli ci to nie
przeszkadza, pozostawić podświetlenie (oczywiście, jeżeli przypadkowo
naciśniesz ^K Y i nie zauważysz...). Jednak, jeżeli naprawdę ci to
przeszkadza, po prostu naciśnij ^K B ^K K, co wyłączy podświetlenie
(pusty blok).
Wcięcia bloków tekstu programu
Tryb automatycznych wcięć przełączany poleceniem ^T I. Plik joerc jest
zwykle skonfigurowany tak, że pliki o nazwach kończących się na .p, .c
lub .h mają włączony tryb automatycznych wcięć. W takim trybie po
naciśnięciu Return kursor zostanie umieszczony w tej samej kolumnie, w
której znajdował się pierwszy różny od SPACE/TAB znak pierwotnej linii.
Do przesuwania bloku tekstu w lewo lub w prawo możesz użyć poleceń ^K ,
i ^K .. Jeżeli w czasie ich wydawania żaden tekst nie jest
podświetlony, to zostanie wybrany i przesunięty przez kolejne polecenia
blok programu, w obrębie którego znajduje się kursor. Liczba kolumn, o
ile przesuwają tekst te polecenia, może być ustawiona opcją ^T.
Okna
Możesz prowadzić jednoczesną edycję wielu plików lub wielu różnych
miejsc w tym samym pliku. Aby to zrobić naciśnij ^K O, co podzieli
ekran na dwa okna. Polecenia ^K P i ^K N przesuwają kursor odpowiednio
do górnego i dolnego okna. ^K E rozpoczyna edycję nowego pliku w jednym
z okien. Okno znika po zapisaniu pliku przez ^K X lub porzuceniu edycji
poleceniem ^C. Jeśli porzucasz edycję pliku otwartego w dwu oknach, to
znika tylko jedno z okien; nie oznacza to całkowitego zaniechania pracy
z plikiem.
Możesz nacisnąć ^K O w oknie, by utworzyć więcej okien. Jeżeli na
ekranie masz zbyt wiele okien, ale nie chcesz ich usuwać, naciśnij ^K
I. Spowoduje to pokazanie tylko okna, w którym znajduje się kursor,
lub, jeśli na ekranie było tylko jedno okno, próbę umieszczenia na
ekranie wszystkich ukrytych okien. Jeżeli okien ukrytych jest więcej,
niż można pomieścić na ekranie, możesz użyć ^K N w najniższym z nich
lub ^K P na najwyższym, by się do nich dostać.
Jeżeli przy wywołaniu JOE'go podano więcej niż jedną nazwę pliku, to
każdy plik zostanie umieszczony w osobnym oknie.
Możesz zmieniać wysokość okien przy pomocy poleceń ^K G i ^K T.
Makra klawiaturowe
Makra pozwalają na zapisanie szeregu naciśnięć klawiszy i odtworzenie
ich za naciśnięciem dwu klawiszy. Przydaje się to do automatyzacji
powtarzalnych zadań. W celu rozpoczęcia rejestracji makra naciśnij ^K [
oraz cyfrę od 0 do 9. W linii statusu zostanie wyświetlone (Macro n
recording...). Teraz użyj serii klawiszy, którą chciałbyś móc
powtarzać. Polecenia, które wprowadzisz będą mieć zwykłe znaczenie.
Naciśnięcie ^K ] zatrzymuje rejestrację makra. Możesz teraz nacisnąć ^K
zakończone numerem, pod jakim zapisałeś makro, co powinno jednokrotnie
wykonać sekwencję zarejestrowanych naciśnięć.
Na przykład, jeśli chcesz wstawić "**" na początku pewnej liczby linii,
możesz wpisać:
^K [ ^A ** <strzałka w dół> ^K ]
Rozpoczyna to proces rejestrowania makra, przesuwa kursor na początek
linii, wstawia "**", przesuwa kursor w dół o jedną linię i kończy
rejestrację makra. Ponieważ zawarliśmy w nim naciśnięcia klawiszy
niezbędne do ustawienia kursora w następnej linii, możemy powtarzać
użycie tego makra bez potrzeby własnoręcznego przesuwania kursora.
Warto o tym pamiętać rejestrując makra.
Jeżeli zauważysz, że makro, które rejestrujesz posiada już samo w sobie
powtarzającą się sekwencję klawiszy, to możesz zapisać jedno makro
wewnątrz innego, używając oczywiście innego numeru makra. Możesz
również wykonywać poprzednio zarejestrowane makra wewnątrz nowych makr.
Powtarzanie
Możesz użyć polecenia powtarzania, ^K \, by powtórzyć zadaną ilość razy
makro lub jakiekolwiek inne polecenie czy nawet zwykły znak. Naciśnij
^K \, wpisz ile razy chcesz by zostało powtórzone polecenie i naciśnij
Return. Następne użyte polecenie edycji zostanie powtórzone zadaną
liczbę razy.
Na przykład, by usunąć 20 linii tekstu, wpisz:
^K \ 20<return>^Y
Tryb bloków prostokątnych
Po użyciu ^T X, sekwencje ^K B i ^K K będą zaznaczać prostokątne bloki
tekstu zamiast bloków ciągłego tekstu (stream-of-text). Tryb ten
przydaje się do przesuwania, kopiowania, usuwania czy zapisu kolumn
tekstu. Możesz też filtrować kolumny tekstu przy pomocy polecenia ^K /,
jeśli chcesz, na przykład, posortować kolumnę. Tryb ten wpływa również
na polecenie wstawiania pliku, ^K R. Gdy wybrany jest tryb pracy z
blokami prostokątnymi, przydaje się również tryb nadpisywania tekstu
(^T T). Po wybraniu trybu nadpisywania prostokąty nie będą wstawiane
przed istniejący tekst - zamiast tego będą go zastępować. Również
polecenie usunięcia bloku (^K Y) wyczyści wybrany obszar spacjami i
tabulatorami zamiast usuwania go. Tryb zastępowania jest szczególnie
użyteczny w poleceniu filtrowania bloku (^K /), gdyż zachowuje
pierwotną szerokość wybranej kolumny.
Wyszukiwanie znaczników (tags)
Jeżeli tworzysz duży program w języku C z wieloma plikami źródłowymi,
możesz użyć programu ctags do utworzenia pliku tags. Plik ten zawiera
listę symboli programu oraz plików i miejsc, gdzie symbole są
definiowane. Możesz posłużyć się poleceniem ^K ; wyszukującym symbol
(funkcje, stałe symboliczne itd.), wczytującym plik, w którym jest on
zdefiniowany, do bieżącego okna i ustawiającym kursor w miejscu, gdzie
zdefiniowano symbol. ^K ; pyta o pożądany symbol, ale domyślnie używa
symbolu, na którym stoi kursor. Ponieważ ^K ; wczytuje plik z definicją
do bieżącego okna, zapewne zechcesz uprzednio podzielić okna sekwencją
^K O, by mieć wczytany do edytora zarówno pierwotny plik jak i plik z
definicją.
Okna powłoki
Naciśnięcie ^K ' uruchamia powłokę poleceń w jednym z okien JOE'go.
Gdy kursor jest na końcu okna powłoki (naciśnij ^K V, jeśli nie jest),
cokolwiek wpiszesz przesyłane jest do powłoki zamiast okna. Wyniki
zwracane przez powłokę lub polecenia wykonywane w powłoce dołączane są
na koniec okna powłoki. Kursor będzie przemieszczał się za nimi, jeśli
był na końcu okna. Polecenie to przydaje się do zapisywania wyników
poleceń powłoki - na przykład wyjścia polecenia make, rezultatu
wyszukiwania przez grep ciągu znaków w plikach czy listy katalogów z
sesji FTP. Oprócz możliwych do wpisania znaków (typeable characters),
przesyłane są do powłoki klawisze ^C, Backspace, DEL, Return i ^D.
Wpisz polecenie powłoki exit, by zatrzymać zapisywanie wyników z
powłoki. Jeżeli naciśniesz ^C w oknie powłoki, gdy kursor nie znajduje
się na końcu okna, proces powłoki zostanie zabity.
ZMIENNE ŚRODOWISKA
Poprawna praca JOE'go wymaga właściwego ustawienia wielu innych
zmiennych środowiska. Powinna być prawidłowo ustawiona prędkość
transmisji dla połączenia między komputerem a twoim terminalem; tylko
wtedy JOE będzie gładko aktualizował ekran i umożliwi wpisywanie znaków
z wyprzedzeniem opóźniając odświeżanie ekranu. Ustaw prędkość
poleceniem stty nnn. Powinna zostać ustawiona na wartość najbliższą
faktycznej prędkości połączenia. Na przykład, jeżeli jesteś połączony
za pośrednictwem modemu 1200 bodów, to tej właśnie wartości powinieneś
użyć jako parametru stty. Jeżeli jesteś połączony modemem 14.4k, ale
"terminal server", z którym jesteś połączony łączy się z komputerem z
9600 bodów, to powinieneś ustawić prędkość na 9600. Specjalna prędkość
38400 lub extb wskazuje, że używasz bardzo szybkiego połączenia, jak na
przykład konsoli mającej bezpośrednie odwzorowanie w pamięci (memory
mapped console) lub pseudoterminala X-window (X-window terminal
emulator). Jeżeli nie możesz użyć polecenia stty do ustawienia
rzeczywistej przepustowości, możesz zamiast tego nadać wartość
numeryczną zmiennej środowiska BAUD (setenv BAUD 9600 dla powłoki csh
lub BAUD=9600; export BAUD dla sh).
Zmienna środowiska TERM musi być ustawiona na typ terminala, z którego
korzystasz. Jeżeli rozmiar (liczba linii/kolumn) twojego terminala
różni się od wskazanej we wpisie w TERMCAP czy TERMINFO, możesz go
ustawić przy pomocy polecenia stty rows nn cols nn albo ustawiając
zmienne środowiska LINES i COLUMNS.
Zwykle JOE spodziewa się, że sterowanie przepływem danych (flow
control) pomiędzy komputerem a twoim terminalem używa programowych
potwierdzeń ^S/^Q (tzn. jeśli komputer wysyła do terminala znaki zbyt
szybko, to terminal przesyła ^S, by zasygnalizować żądanie wstrzymania
nadawania kolejnych danych, zaś ^Q, by wznowić nadawanie). Jeżeli
sterowanie przepływem danych używa potwierdzenia sprzętowego (hardware
handshaking) lub "out-of-hand" albo terminal jest dostatecznie szybki
by zawsze nadążać za danymi nadawanymi z komputera, możesz przypisać
sekwencje ^S i ^Q do poleceń edycyjnych JOE'go. W tym celu powinieneś
ustawić zmienną środowiska NOXON, by JOE mógł wyłączyć potwierdzanie
przez ^S/^Q. Jeśli połączenie między komputerem a twoim terminalem nie
używa potwierdzeń, zaś terminal nie jest dość szybki by poprawnie
odbierać wszystkie nadsyłane dane, to możesz ustawić zmienną środowiska
DOPADDING, co spowoduje, że JOE spowolni wysyłanie przeplatając znakami
wypełniającymi (PAD) sekwencje aktualniania ekranu terminala.
NAZWY PLIKÓW
Wszędzie, gdzie JOE oczekuje wprowadzenia nazwy pliku, zarówno w linii
poleceń jak i w zapytaniach edytora, możesz również wpisać:
!polecenie
Odczyt lub zapis danych do lub z polecenia powłoki. Na przykład,
użyj joe '!ls', by otrzymać kopię listingu katalogu gotową do
edycji, albo wewnątrz edytora użyj ^K D !mail
jhallen@world.std.com, aby wysłać do autora JOE'go edytowany
plik.
>>nazwapliku
Nakazuje JOE'mu dołączenie edytowanego tekstu na koniec pliku
nazwapliku.
nazwapliku, START, ROZMIAR
Daje dostęp do konkretnego fragmentu pliku lub urządzenia.
START oraz ROZMIAR mogą być wprowadzone w postaci dziesiętnej
(np. 123), ósemkowej (np. 0777) lub szesnastkowej (np. 0xFF). Na
przykład, joe /dev/fd0,508,2 umożliwia edycję 508-go i 509-go
bajtu pierwszego napędu dyskietek w Linuksie.
- Pobiera dane ze standardowego wejścia lub zapisuje wyniki na
standardowe wyjście. Na przykład, możesz włączyć joe'go do
potoku poleceń: quota -v | joe - | mail root, jeśli chcesz
ponarzekać na swoje zbyt małe udziały w przestrzeni dyskowej
(quota).
PLIK joerc
Opcje ^T, ekrany pomocy i przypisania sekwencji klawiszy do poleceń
edytora zdefiniowane są w pliku inicjującym JOE'go. Po zrobieniu kopii
tego pliku (który zwykle znajduje się w /usr/local/lib/joerc) do
katalogu domowego, pod nazwą $HOME/.joerc, możesz zmieniać te
ustawienia według własnych upodobań. Składnia pliku inicjującego
powinna być dość oczywista, poza tym są w nim zawarte dalsze wskazówki.
PODZIĘKOWANIA
JOE'go napisał Joseph H. Allen. Zgłoszenia błędów i pytania nadsyłaj na
adres jhallen@world.std.com. W pracy nad stworzeniem JOE'go pomogli
również Larry Foard (entropy@world.std.com) i Gary Gray
(ggray@world.std.com).
JOE(1)