Scope
Bu belge, sürüm 582 ve daha yeni less sürümleri tarafından kullanılan lesskey kaynak dosyasının biçimini açıklar. less'in önceki sürümlerinde, lesskey kaynak dosyasını less tarafından anlaşılan bir biçime derlemek için lesskey adında ayrı bir program kullanılırdı. Bu derleme adımına artık gerek yoktur ve dosya biçimi less'in kendisi tarafından desteklenmeye devam etse de lesskey programının kullanımı sonlandırılmıştır (deprecated).
Description
Bir lesskey dosyası, sonraki less çağrılarında kullanılacak bir dizi tuş atamasını ve ortam değişkenlerini belirtir.
File Format
Giriş 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.
Command Section
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:
string
Boşluk (whitespace), bir veya daha fazla boşluk ve/veya sekme (tab) karakterinin herhangi bir dizisidir. string, eylemi (action) çağıran komut tuş(lar)ıdır. Dize tek bir komut tuşu veya 15 tuşa kadar olan bir dizi olabilir. action, aşağıdaki listeden seçilen less eyleminin adıdır. Dizedeki karakterler birebir görünebilir veya bir kontrol tuşunu belirtmek için önüne bir şapka işareti (^) eklenebilir. Bir karakteri sekizlik (octal) 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, giriş 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 karakter(ler)i 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 birebir 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" (extra) dize gelebilir. less çalışırken böyle bir komut girildiğinde, eylem gerçekleştirilir ve ardından sanki less içine yazılmış gibi ekstra dize 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ırıldığında, ekstra dizenin ilk karakterinin ASCII değeri çıkış durumu (exit status) olarak kullanılır.
Example
Aşağıdaki giriş dosyası, less tarafından kullanılan varsayılan komut tuşları kümesini açıklar. Her komut hakkındaki belgeler, less man 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
Precedence
lesskey tarafından belirtilen komutlar, varsayılan komutlardan önceliklidir. Giriş dosyasında "invalid" eylemi ile belirtilerek varsayılan bir komut 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 (beep) verirken, "noaction" komutu için bu sesi vermez. Ek olarak, giriş 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ğinin tehlikeli olabileceğini unutmayın. 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 hayal kırıklığına yol açabilir.
Line Editing Section
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.
Example
Aşağıdaki giriş 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 Environment Variables
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 orijinal tanımını (bir = 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 birebir eklenir; dolayısıyla boşluk isteniyorsa, önceki satırın sonuna eklenmelidir. (Eşittir işaretinden sonraki boşluklar yukarıda belirtildiği gibi yoksayıldığından, += dizesinin başına 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özdizimi 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 bir metin karşılaştırması kullanılarak eşleştirilir; meta karakterler desteklenmez. STRING veya REPL içindeki bir bölü veya sağ süslü parantez örneğinin önüne iki ters eğik çizgi getirilerek kaçış (escape) sağlanmalıdır. REPL boş bir dize ise, tüm STRING örnekleri kaldırılır. Sağ süslü parantezden hemen önceki bir bölü işareti atlanabilir. Değiştirme işlemleri ${NAME/STRING1/REPL1/STRING2/REPL2} ve benzeri sözdizimi kullanılarak birden fazla kez gerçekleştirilebilir.
Conditional Configuration
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.
Example
Aşağıdaki giriş 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
See Also
less(1)
Warnings
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.
Copyright
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; bkz. COPYING dosyası. 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; bkz. LICENSE dosyası.
less, yararlı olacağı ümidiyle ancak HİÇBİR GARANTİ VERİLMEDEN; ticari elverişlilik veya BELİRLİ BİR 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.
Author
Mark Nudelman Hataları https://github.com/gwsw/less/issues adresinden bildirin.
Version 668: 06 Oct 2024 LESSKEY(1)