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
Uwaga! To tłumaczenie może być nieaktualne!
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 ścieżka
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 .c, .h czy .p), JOE automatycznie
przeniesie ostatni wyraz do następnej linii, 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 [AT] world.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 [AT] world.com. W pracy nad stworzeniem JOE’go pomogli również Larry Foard (entropy [AT] world.com) i Gary Gray (ggray [AT] world.com).
INFORMACJE O TŁUMACZENIU
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:
man --locale=C 1 joe
Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.