man/text
man · Metin İşleme

$ lesskey

Bölüm 1 · Metin İşleme

`less` için tuş atamalarını özelleştirir

Özet (Kullanımdan Kaldırıldı)

lesskey [-o output] [--] [input]
lesskey [--output=output] [--] [input]
lesskey -V
lesskey --version

Kapsam

Bu belge, less sürüm 582 ve sonrasında kullanılan lesskey kaynak dosyasının biçimini açıklar. less aracının önceki sürümlerinde, lesskey kaynak dosyasını less tarafından anlaşılan bir biçime derlemek için lesskey adlı ayrı bir program kullanılırdı. Bu derleme adımına artık gerek yoktur ve dosya biçimi less tarafından desteklenmeye devam etse de lesskey programının kullanımı sonlandırılmıştır.

Açıklama

Bir lesskey dosyası, sonraki less çağrılarında kullanılacak tuş atamalarını ve ortam değişkenlerini belirtir.

Dosya Biçimi

Girdi dosyası bir veya daha fazla bölümden oluşur. Her bölüm, bölümün türünü tanımlayan bir satırla başlar. Olası bölümler şunlardır:

  • #command: Komut tuş atamalarını özelleştirir.
  • #line-edit: Satır düzenleme tuş atamalarını özelleştirir.
  • #env: Ortam değişkenlerini tanımlar.

Aşağıda belirtilenler dışında, boş satırlar ve diyez işareti (#) ile başlayan satırlar yoksayılır.

Komut Bölümü

Komut bölümü şu satırla başlar:

#command

Komut bölümü dosyadaki ilk bölüm ise bu satır atlanabilir. Komut bölümü şu biçimdeki satırlardan oluşur:

dize <boşluk> eylem [ekstra-dize] <yeni-satır>

Boşluk, bir veya daha fazla boşluk ve/veya sekme karakterinden oluşan herhangi bir dizidir. dize, eylemi çağıran komut tuşlarıdır. Dize tek bir komut tuşu veya en fazla 15 tuştan oluşan bir dizi olabilir. eylem, aşağıdaki listeden seçilen less eyleminin adıdır.

Dizedeki karakterler doğrudan yazılabilir veya bir kontrol tuşunu belirtmek için önüne şapka işareti (^) eklenebilir. Bir karakteri sekizlik değeriyle belirtmek için ters eğik çizgi (\) ve ardından bir ila üç sekizlik basamak kullanılabilir.

Ters eğik çizgi ve ardından gelen belirli karakterler, girdi karakterlerini şu şekilde belirtir:

\b   BACKSPACE   (0x08)
\e   ESCAPE      (0x1B)
\n   NEWLINE     (0x0A)
\r   RETURN      (0x0D)
\t   TAB         (0x09)

\k ve ardından gelen tek bir karakter, bu tuşlardan birine basıldığında üretilen karakterleri temsil eder:

\kb   BACKSPACE (BACKSPACE tuşu)
\kB   ctrl-BACKSPACE
\kd   AŞAĞI OK (DOWN ARROW)
\kD   SAYFA AŞAĞI (PAGE DOWN)
\ke   END
\kh   HOME
\ki   INSERT
\kl   SOL OK (LEFT ARROW)
\kL   ctrl-SOL OK
\kr   SAĞ OK (RIGHT ARROW)
\kR   ctrl-SAĞ OK
\kt   BACKTAB
\ku   YUKARI OK (UP ARROW)
\kU   SAYFA YUKARI (PAGE UP)
\kx   DELETE
\kX   ctrl-DELETE
\k1   F1

Ters eğik çizgi ve ardından gelen diğer tüm karakterler, o karakterin doğrudan alınması gerektiğini belirtir. Önüne ters eğik çizgi getirilmesi gereken karakterler arasında şapka işareti (^), boşluk, sekme, diyez işareti (#) ve ters eğik çizginin kendisi bulunur.

Bir eylemin ardından bir "ekstra" dize gelebilir. less çalışırken böyle bir komut girildiğinde, eylem gerçekleştirilir ve ardından ekstra dize, less içine yazılmış gibi ayrıştırılır. Bu özellik, belirli durumlarda bir komutun işlevselliğini genişletmek için kullanılabilir. Örneğin aşağıdaki örnekteki { ve :t komutlarına bakın.

Ekstra dize, quit eylemi için özel bir anlama sahiptir: less sonlandığında, ekstra dizenin ilk karakterinin ASCII değeri çıkış durumu olarak kullanılır.

Komut Bölümü Örneği

Aşağıdaki girdi dosyası, less tarafından kullanılan varsayılan komut tuşları kümesini açıklar. Her komut hakkındaki belgeler, less kılavuz sayfasında komutu çağıran tuş dizisi altında bulunabilir.

#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
## Uzun bir seçenek adını kullanmak için ekstra
## dizeyi TEK bir tire ile başlatın; örn:
##   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

Öncelik

lesskey tarafından belirtilen komutlar, varsayılan komutlardan önceliklidir. Varsayılan bir komut, girdi dosyasında invalid eylemi ile belirtilerek devre dışı bırakılabilir. Alternatif olarak, noaction eylemi kullanılarak bir tuşun hiçbir şey yapmaması sağlanabilir. noaction, invalid eylemine benzer; ancak less, invalid bir komut için hata sesi verirken noaction komutu için bu sesi vermez.

Ek olarak, girdi dosyasına şu kontrol satırı eklenerek tüm varsayılan komutlar devre dışı bırakılabilir:

#stop

Bu, tüm varsayılan komutların yoksayılmasına neden olur. #stop satırı, dosyanın o bölümündeki son satır olmalıdır.

#stop seçeneği tehlikeli olabilir. Tüm varsayılan komutlar devre dışı bırakıldığından, gerekli tüm eylemleri etkinleştirmek için #stop satırından önce yeterli komutları sağlamalısınız. Örneğin, bir quit komutu sağlamamak sinir bozucu bir oturuma yol açabilir.

Satır Düzenleme Bölümü

Satır düzenleme bölümü şu satırla başlar:

#line-edit

Bu bölüm, sıradan komutlar için tuş atamalarının #command bölümünde belirtilmesine benzer şekilde, satır düzenleme komutları için yeni tuş atamalarını belirtir. Satır düzenleme bölümü, aşağıdaki örnekte olduğu gibi satır başına bir tane olacak şekilde tuşlar ve eylemler listesinden oluşur.

Satır Düzenleme Örneği

Aşağıdaki girdi dosyası, less tarafından kullanılan varsayılan satır düzenleme tuşları kümesini açıklar:

#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

Less Ortam Değişkenleri

Ortam değişkenleri bölümü şu satırla başlar:

#env

Bu satırın ardından ortam değişkeni atamalarının bir listesi gelir. Her satır bir ortam değişkeni adından, eşittir işaretinden (=) ve ortam değişkenine atanacak değerden oluşur. Eşittir işaretinden önceki ve sonraki boşluklar yoksayılır. Bu şekilde atanan değişkenler yalnızca less tarafından görülebilir. Bir değişken hem sistem ortamında hem de bir lesskey dosyasında belirtilmişse, lesskey dosyasındaki değer öncelikli olur.

Değişken adının ardından = yerine += geliyorsa, dize değişkenin mevcut değerinin sonuna eklenir. Bu durum şu anda yalnızca herhangi bir += satırının, araya başka değişken tanımları girmeden, aynı değişkenin özgün tanımını (= satırı ile) hemen takip etmesi durumunda çalışır. Yalnızca dosyada daha önce tanımlanmış bir değişkene ekleme yapabilir; sistem ortamındaki bir değişkene ekleme yapamaz.

Dize, herhangi bir ek boşluk eklenmeden doğrudan eklenir; dolayısıyla boşluk isteniyorsa, önceki satırın sonuna eklenmelidir. Eşittir işaretinden sonraki boşluklar yoksayıldığından, += dizesinin başına boşluk eklenemez.

= işaretinden sonraki dizede, ${NAME} biçimindeki bir alt dize, NAME ortam değişkeninin değeriyle değiştirilir. Değişkenin değeri sistem ortamından, önceki bir lesskey dosyasından veya mevcut lesskey dosyasındaki daha önceki bir tanımdan gelebilir.

${NAME/STRING/REPL} söz dizimi kullanılarak basit metin değiştirmeleri gerçekleştirilebilir. Bu, belirtilen ortam değişkenindeki tüm STRING örneklerini REPL metni ile değiştirir. STRING, basit metin karşılaştırmasıyla eşleştirilir; özel karakterler desteklenmez. STRING veya REPL içindeki bölü veya sağ süslü parantez örneğinin önüne iki ters eğik çizgi getirilerek kaçış sağlanmalıdır. REPL boş bir dize ise, tüm STRING örnekleri kaldırılır.

Sağ süslü parantezden hemen önceki bölü işareti atlanabilir. Değiştirme işlemleri ${NAME/STRING1/REPL1/STRING2/REPL2} ve benzeri söz dizimi kullanılarak birden fazla kez gerçekleştirilebilir.

Koşullu Yapılandırma

Bir satır #version ile başlıyorsa ve ardından bir ilişkisel operatör ile bir sürüm numarası geliyorsa, satırın geri kalanı yalnızca çalışan less veya lesskey sürümü operatörle eşleşirse ayrıştırılır. Bu, bir lesskey dosyasının farklı less sürümleri tarafından kullanılması durumunda yararlı olabilir.

Örneğin, less sürüm 777'de sideways-search adında yeni bir komutun eklendiğini varsayalım. Bu durumda, aşağıdaki satır komutu Q tuşuna atayacaktır, ancak yalnızca bunu destekleyen less sürümlerinde. Bu satır, 777'den önceki sürümler tarafından yoksayılacaktır.

#version >= 777  Q sideways-search

Şu altı operatör desteklenir:

  • >: Büyüktür.
  • <: Küçüktür.
  • >=: Büyük veya eşittir.
  • <=: Küçük veya eşittir.
  • =: Eşittir.
  • !=: Eşit değildir.

#version özelliği, sürüm 594'ten önceki less ve lesskey sürümlerinde desteklenmez. Bu eski sürümlerde, tüm #version satırları yoksayılır.

Ortam Değişkenleri Örneği

Aşağıdaki girdi dosyası, less çalıştırıldığında -i ve -S seçeneklerini ayarlar ve sürüm 595 ve üzerinde bir --color seçeneği ekler.

#env
## Bir sonraki satırın sonunda, --color seçeneğini
## -S seçeneğinden ayırmak için bir boşluk olması gerektiğini unutmayın.
LESS = -i -S
#version >= 595  LESS += --color=Hkc

Ayrıca Bakınız

less(1)

Uyarılar

MS-DOS ve OS/2 sistemlerinde, belirli tuşlar bir NUL karakteri (0) ile başlayan bir karakter dizisi gönderir. Bu NUL karakteri, bir lesskey dosyasında \340 olarak temsil edilmelidir.

Telif Hakkı

Copyright (C) 1984-2024 Mark Nudelman

less, GNU projesinin bir parçasıdır ve özgür bir yazılımdır. Free Software Foundation tarafından yayınlanan GNU Genel Kamu Lisansı veya Less Lisansı şartlarına göre yeniden dağıtabilir ve/veya değiştirebilirsiniz. Yeniden dağıtımla ilgili daha fazla ayrıntı için less dağıtımındaki README dosyasına bakın. less kaynak koduyla birlikte GNU Genel Kamu Lisansı'nın bir kopyasını almış olmalısınız; COPYING dosyasına bakın. Aksi takdirde Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307, ABD adresine yazın. Less Lisansı'nın da bir kopyasını almış olmalısınız; LICENSE dosyasına bakın.

less, yararlı olacağı ümidiyle ancak hiçbir garanti verilmeden; ticari elverişlilik veya belirli bir amaca uygunluk zımni garantisi dahi olmaksızın dağıtılmaktadır. Daha fazla ayrıntı için GNU Genel Kamu Lisansı'na bakın.

Yazar

Mark Nudelman

Hataları https://github.com/gwsw/less/issues adresinden bildirin.