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
~.
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.
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.
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).
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/.