LESSKEY(1)

NAZWA
lesskey - dostosowuje przypisanie klawiszy programu less

SKŁADNIA (przestarzała)
lesskey [-o wyjście] [--] [wejście]
lesskey [--output=wyjście] [--] [wejście]
lesskey -V
lesskey --version

ZAKRES
Niniejszy dokument opisuje format pliku źródłowego lesskey, który jest używany przez less w wersji 582 i późniejszych. W poprzednich wersjach less, do skompilowania pliku źródłowego lesskey, do formatu zrozumiałego dla less, służył oddzielny program zwany lesskey. Obecnie krok kompilacji jest zbędny, dlatego program lesskey jest uważany za przestarzały, choć format pliku pozostaje obsługiwany, tyle że przez sam program less.

OPIS
Plik lesskey opisuje zestaw przypisań klawiszy i zmiennych środowiskowych, które będą używane w kolejnych wywołaniach less.

FORMAT PLIKU
Plik wejściowy składa się z jednej lub więcej sekcji. Każda sekcja zaczyna się od wiersza identyfikującego jej typ. Możliwymi sekcjami są:

#command
    Dostosowuje przypisanie klawiszy dla polecenia

#line-edit
    Dostosowuje przypisania klawiszy edycji wiersza.

#env
    Definiuje zmienne środowiska.

Wiersze puste i rozpoczynające się od znaku krzyżyka (#) są ignorowane, chyba że poniżej zaznaczono inaczej.

SEKCJA KOMEND
Sekcja komend rozpoczyna się od wiersza

#command

Jeżeli sekcja komend jest pierwszą sekcją w pliku, to wiersz ten może zostać pominięty. Sekcja komend składa się z wierszy o postaci:

    łańcuch <biały-znak> akcja [dodatkowy-łańcuch] <nowy-wiersz>

Biały znak jest dowolnym ciągiem jednego lub więcej znaków spacji i/lub tabulacji. łańcuch jest klawiszem (klawiszami) wywołującym daną akcję. łańcuch może być pojedynczym klawiszem komendy lub sekwencją co najwyżej 15 klawiszy. akcja jest nazwą akcji less, z poniżej podanej listy. Znaki łańcucha mogą występować dosłownie albo być poprzedzone znakiem daszku (^) wskazującym na klawisz sterujący (złożenie z Ctrl). Do zapisu znaku poprzez jego wartość ósemkową można posłużyć się znakiem odwrotnego ukośnika (backslash) i jedną do trzech cyfr ósemkowych. Odwrotny ukośnik w połączeniu z pewnymi znakami określa następujące znaki wejściowe:
    \b | BACKSPACE | (0x08)
    \e | ESCAPE | (0x1B)
    \n | NOWY WIERSZ | (0x0A)
    \r | RETURN | (0x0D)
    \t | TABULATOR | (0x09)

    \k, po którym następuje pojedynczy znak reprezentujący znak(i) generowany po wciśnięciu jednego z tych klawiszy:
    \kb | BACKSPACE (klawisz BACKSPACE)
    \kB | ctrl-BACKSPACE
    \kd | STRZAŁKA_W_DÓŁ
    \kD | PAGE DOWN (strona w dół)
    \ke | END
    \kh | HOME
    \ki | INSERT
    \kl | STRZAŁKA_W_LEWO
    \kL | ctrl-STRZAŁKA_W_LEWO
    \kr | STRZAŁKA_W_PRAWO
    \kR | ctrl-STRZAŁKA_W_PRAWO
    \kt | BACKTAB (odwrotny tabulator)
    \ku | STRZAŁKA_W_GÓRĘ
    \kU | PAGE UP (strona w górę)
    \kx | DELETE
    \kX | ctrl-DELETE
    \k1 | F1

    Odwrotny ukośnik poprzedzający dowolny inny znak oznacza, że znak ten powinien zostać potraktowany dosłownie. Wśród znaków, które muszą być poprzedzone odwrotnym ukośnikiem występują daszek (^), spacja, znak tabulacji, krzyżyk (#) i sam odwrotny ukośnik.

    Po akcji może wystąpić dodatkowy łańcuch. Jeśli wprowadzona zostanie taka komenda podczas pracy z less, to wykonywana jest akcja, a następnie analizowany jest podany dodatkowy łańcuch, tak jak gdyby został on naciśnięty (wpisany do less). Właściwość ta może posłużyć w pewnych przypadkach do poszerzenia funkcjonalności komendy. Proszę sprawdzić komendy „{” i „:t” w przykładzie poniżej. Dla akcji „quit” dodatkowy łańcuch ma znaczenie specjalne: gdy less kończy pracę, wartość ASCII pierwszego znaku tego dodatkowego łańcucha używana jest jako status zakończenia.

PRZYKŁAD
Poniższy plik wejściowy opisuje zestaw domyślnych klawiszy komend używany przez less. Dokumentacja każdego polecenia jest dostępna w podręczniku systemowym less, przy opisie danej sekwencji klawiszy wywołującej polecenie.

    #command
    \r | forw-line
    \n | forw-line
    e | forw-line
    j | forw-line
    \kd | forw-line
    ^E | forw-line
    ^N | forw-line
    k | back-line
    y | back-line
    ^Y | back-line
    ^K | back-line
    ^P | back-line
    J | forw-line-force
    K | back-line-force
    Y | back-line-force
    d | forw-scroll
    ^D | forw-scroll
    u | back-scroll
    ^U | back-scroll
    \40 | forw-screen
    f | forw-screen
    ^F | forw-screen
    ^V | forw-screen
    \kD | forw-screen
    b | back-screen
    ^B | back-screen
    \ev | back-screen
    \kU | back-screen
    z | forw-window
    w | back-window
    \e\40 | forw-screen-force
    F | forw-forever
    \eF | forw-until-hilite
    R | repaint-flush
    r | repaint
    ^R | repaint
    ^L | repaint
    \eu | undo-hilite
    \eU | clear-search
    g | goto-line
    \kh | goto-line
    < | goto-line
    \e< | goto-line
    p | percent
    % | percent
    \e( | left-scroll
    \e) | right-scroll
    \kl | left-scroll
    \kr | right-scroll
    \e{ | no-scroll
    \e} | end-scroll
    { | forw-bracket {}
    } | back-bracket {}
    ( | forw-bracket ()
    ) | back-bracket ()
    [ | forw-bracket []
    ] | back-bracket []
    \e^F | forw-bracket
    \e^B | back-bracket
    G | goto-end
    \e> | goto-end
    > | goto-end
    \ke | goto-end
    \eG | goto-end-buffered
     | status
    ^G | status
    :f | status
    / | forw-search
    ? | back-search
    \e/ | forw-search *
    \e? | back-search *
    n | repeat-search
    \en | repeat-search-all
    N | reverse-search
    \eN | reverse-search-all
    ^O^N | osc8-forw-search
    ^On | osc8-forw-search
    ^O^P | osc8-back-search
    ^Op | osc8-back-search
    ^O^O | osc8-open
    & | filter
    m | set-mark
    M | set-mark-bottom
    \em | clear-mark
    ' | goto-mark
    ^X^X | goto-mark
    E | examine
    :e | examine
    ^X^V | examine
    :n | next-file
    :p | prev-file
    t | next-tag
    T | prev-tag
    :x | index-file
    :d | remove-file
    - | toggle-option
    :t | toggle-option t
    s | toggle-option o
     | ## Aby użyć długiej opcji, należy rozpocząć
     | ## dodatkowy łańcuch JEDNĄ kreską np.:
     | ## s toggle-option -log-file\n
     | display-option
    | | pipe
    v | visual
    ! | shell
    # | pshell
    + | firstcmd
    H | help
    h | help
    V | version
    0 | digit
    1 | digit
    2 | digit
    3 | digit
    4 | digit
    5 | digit
    6 | digit
    7 | digit
    8 | digit
    9 | digit
    q | quit
    Q | quit
    :q | quit
    :Q | quit
    ZZ | quit

PRIORYTET
Komendy określone przez lesskey mają pierwszeństwo przed komendami domyślnymi. Domyślny klawisz komendy może zostać wyłączony przez zawarcie go w pliku wejściowym z przypisaną akcją „invalid” (niepoprawny). Alternatywnie, można zdefiniować, by klawisz nie robił niczego, przypisując mu akcję „noaction” (bez akcji). „noaction” jest podobne do „invalid”, lecz less będzie sygnalizował dźwiękiem błąd dla „niepoprawnej” komendy, czego nie czyni dla komendy „bez akcji”. Dodatkowo, można wyłączyć WSZYSTKIE domyślne komendy włączając do pliku wejściowego taki wiersz sterujący:

#stop

Spowoduje to, że wszystkie komendy domyślne będą ignorowane. Wiersz #stop powinien być ostatnim wierszem w tej sekcji pliku.

Należy być świadomym tego, że #stop może być niebezpieczne. Ponieważ wyłączone są wszystkie domyślne komendy, należy zapewnić wystarczający zestaw komend przed wierszem #stop, tak by udostępnić wszelkie niezbędne akcje. Na przykład, zaniedbanie dostarczenia komendy „quit” może prowadzić do frustracji.

SEKCJA EDYCJI WIERSZA
Sekcja edycji wiersza rozpoczyna się wierszem:

#line-edit

Sekcja ta określa nowe przypisania klawiszy dla komend edycji wiersza, w sposób podobny do przypisań klawiszy do zwykłych komend w sekcji #command. Sekcja edycji wiersza składa się z listy klawiszy i akcji, po jednej parze na wiersz, tak jak w przykładzie poniżej.

PRZYKŁAD
Poniższy plik wejściowy opisuje zestaw domyślnych klawiszy edycji wiersza używany przez less:

    #line-edit
    \t | forw-complete
    \17 | back-complete
    \e\t | back-complete
    ^L | expand
    ^V | literal
    ^A | literal
    \el | right
    \kr | right
    \eh | left
    \kl | left
    \eb | word-left
    \e\kl | word-left
    \ew | word-right
    \e\kr | word-right
    \ei | insert
    \ex | delete
    \kx | delete
    \eX | word-delete
    \ekx | word-delete
    \e\b | word-backspace
    \e0 | home
    \kh | home
    \e$ | end
    \ke | end
    \ek | up
    \ku | up
    \ej | down
    ^G | abort

ZMIENNE ŚRODOWISKA LESS
Sekcja zmiennych środowiska rozpoczyna się wierszem

#env

Po nim występuje lista przypisań wartości dla zmiennych środowiskowych. Każdy wiersz składa się z nazwy zmiennej środowiska, znaku równości (=) oraz wartości, jaka ma zostać przypisana tej zmiennej. Zmienne przypisane w ten sposób widoczne są wyłącznie dla less. Jeżeli dana zmienna określona jest w środowisku systemowym i równocześnie w pliku lesskey, to pierwszeństwo ma jej wartość z pliku lesskey.

Jeśli po nazwie zmiennej wystąpi += zamiast =, łańcuch jest doklejany do istniejącej wartości zmiennej. Działa to obecnie jedynie, gdy wiersze += występują natychmiast po pierwotnej definicji danej zmiennej (za pomocą wiersza z =), bez przeplatania ich definicjami innych zmiennych. Doklejać można tylko do zmiennej zdefiniowanej wcześniej w pliku; nie da się tego zrobić w stosunku do zmiennej ze środowiska systemowego. Łańcuch jest doklejany literalnie, bez dodawania żadnego białego znaku, zatem jeśli jest on oczekiwany, należy go dodać na końcu poprzedzającego wiersza (nie można go dodać na początku łańcucha +=, ponieważ spacja po znaku równości jest ignorowana, jak wskazano powyżej).

W łańcuchu po znaku =, podłańcuch w postaci ${NAZWA} jest zastępowany wartością zmiennej środowiskowej „NAZWA”. Wartość zmiennej może pochodzić z: środowiska systemu, wcześniejszego pliku lesskey albo wcześniejszej definicji w bieżącym pliku lesskey. Proste zastępowanie tekstowe można wykonać za pomocą składni ${NAZWA/ŁAŃCUCH/ZASTĘPNIK}. W ten sposób zastąpione zostaną wszystkie wystąpienia „ŁAŃCUCHA”, w danej zmiennej środowiskowej, tekstem „ZASTĘPNIK”. ŁAŃCUCH jest dopasowywany za pomocą prostego porównania tekstu; nie są obsługiwane metaznaki. Wystąpienie ukośnika lub prawego nawiasu klamrowego w ŁAŃCUCHU lub ZASTĘPNIKU muszą zostać zacytowane za pomocą dwóch odwrotnych ukośników. Jeśli ZASTĘPNIK jest łańcuchem pustym, wszystkie wystąpienia ŁAŃCUCHA są usuwane. Ukośnik występujący bezpośrednio przed prawym nawiasem klamrowym można pominąć. Zastąpienia wielokrotne można wykonać za pomocą składni ${NAZWA/ŁAŃCUCH1/ZASTĘPNIK1/ŁAŃCUCH2/ZASTĘPNIK2} itd.

KONFIGURACJA WARUNKOWA
Jeśli wiersza zaczyna się od: #version po którym następuje operator i numer wersji, pozostała część wiersza jest przetwarzana wtedy i tylko wtedy, gdy działająca wersja less (lub lesskey) zostanie dopasowana przez operator. Może być to użyteczne, gdy z danego pliku lesskey korzystają różne wersje programu less.

Przyjmijmy na przykład, że w wersji 777 programu less dodano polecenie o nazwie 'sideways-search'. Poniższy wiersz przypisałby polecenie do klawisza Q, ale tylko w wersjach less które to obsługują. Wiersz zostałby zignorowany przez wersje wcześniejsze niż 777.

	#version >= 777  Q sideways-search

Obsługiwane jest sześć poniższych operatorów:
    > | Większe niż
    < | Mniejsze niż
    >= | Większe lub równe
    <= | Mniejsze lub równe
     | Równe
    != | Różne od

Funkcja #version nie jest obsługiwana w programach less i lesskey przed wersją 594. W tych starszych wersjach, ignorowane są wszystkie wiersze #version.

PRZYKŁAD
Poniższy plik wejściowy ustawia opcje -i i -S gdy działa less oraz, w wersji 595 lub wyższej, dodaje opcję --color.

	#env
	## (Proszę zauważyć, że na końcu następnego wiersza musi być
	## spacja, aby oddzielić opcję --color od opcji -S.)
	LESS = -i -S 	#version >= 595  LESS += --color=Hkc

ZOBACZ TAKŻE
less(1)

OSTRZEŻENIA
W systemach MS-DOS i OS/2 pewne klawisze wysyłają sekwencje rozpoczynające się od znaku NUL (0). Taki znak NUL w pliku lesskey powinien być reprezentowany przez \340.

PRAWA AUTORSKIE
Copyright (C) 1984-2024 Mark Nudelman

less jest częścią projektu GNU i stanowi wolne oprogramowanie. Można go rozprowadzać dalej i/lub modyfikować na warunkach albo (1) Powszechnej Licencji Publicznej GNU, wydanej przez Fundację Wolnego Oprogramowania, albo (2) Licencji Less. Szczegóły dotyczące rozprowadzania znajdują się w pliku README pakietu dystrybucyjnego less. Wraz z less powinieneś otrzymać egzemplarz Powszechnej Licencji Publicznej GNU (GNU General Public License) - zobacz plik COPYING. Jeśli nie - napisz do Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. Powinieneś także otrzymać kopię Licencji Less - zobacz plik LICENSE.

less rozpowszechniany jest z nadzieją, iż będzie użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. W celu uzyskania bliższych informacji sięgnij do Powszechnej Licencji Publicznej GNU.

AUTOR
Mark Nudelman
Błędy prosimy zgłaszać pod adresem https://github.com/gwsw/less/issues

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Wojtek Kotwica <wkotwica@post.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.