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