'\" t .TH LESSKEY 1 "30 May 2026" "less 704" .\" Define a string for the caret ("hat") as portably as possible. .ie \n(.g .ds ^ \(ha .el .ds ^ ^ .\" Define a string for the neutral apostrophe as portably as possible. .ie \n(.g .ds ' \(aq .el .ds ' ' .\" Define a string to interpolate the hyphenless break point escape .\" sequence (for URLs and similar) if the formatter claims groff .\" compatibility, else interpolate nothing. .ie \n(.g .ds : \: .el .ds : \" empty .SH "نام (NAME)" lesskey \- سفارشی‌سازی کلیدهای میانبر برای less .SH "خلاصه دستور (SYNOPSIS) (منسوخ شده)" .B lesskey .RB [ \-o .IR output ] .B \-\- .I input .br .B lesskey .RB [ \-\-output=\c .IR output ] .B \-\- .I input .PP .B "lesskey \-V" .br .B "lesskey \-\-version" .SH "دامنه کاربرد (SCOPE)" این سند قالب پروندهٔ منبع .B lesskey را شرح می‌دهد که توسط .B less نسخهٔ 582 و بالاتر استفاده می‌شود. در نسخه‌های پیشین .BR less ، برنامهٔ جداگانه‌ای به نام .B lesskey برای کامپایل کردن پروندهٔ منبع .B lesskey به قالبی به کار می‌رفت که قابل فهم باشد برای .BR less . این مرحلهٔ کامپایل دیگر لازم نیست و بنابراین برنامهٔ .B lesskey منسوخ شده است، اگرچه قالب پرونده همچنان توسط خود .B less پشتیبانی می‌شود. .PP .SH "توضیحات (DESCRIPTION)" یک فایل .B lesskey مجموعه‌ای از نگاشت‌های کلید و متغیرهای محیطی را مشخص می‌کند، برای استفاده در فراخوانی‌های بعدی .BR less . .SH "قالب فایل (FILE FORMAT)" فایل ورودی از یک یا چند .IR بخش تشکیل شده است. هر بخش با خطی شروع می‌شود که نوع آن بخش را مشخص می‌کند. بخش‌های ممکن عبارتند از: .IP #command نگاشت کلیدهای دستور را سفارشی می‌کند. .IP #line\-edit نگاشت کلیدهای ویرایش خط را سفارشی می‌کند. .IP #env متغیرهای محیطی را تعریف می‌کند. .PP خط‌های خالی نادیده گرفته می‌شوند. هر متنی که پس از یک علامت هش (#) فرارنشده در یک خط بیاید، نادیده گرفته می‌شود، مگر در مواردی که در ادامه ذکر شده است. . .SH "بخش دستورات (COMMAND SECTION)" بخش دستورات با خط زیر آغاز می‌شود: .PP #command .PP اگر بخش دستورات اولین بخش در فایل باشد، می‌توان این خط را نادیده گرفت. بخش دستورات از خطوطی با ساختار زیر تشکیل شده است: .PP \fIstring\fP \fIaction\fP [extra-string] .PP ‏Whitespace هر توالی از یک یا چند فاصله و/یا تب است. عبارت \fIstring\fP کلید(های) دستوری است که عمل را فراخوانی می‌کند. عبارت \fIstring\fP می‌تواند یک کلید دستوری تکی یا توالی‌ای از حداکثر ۱۵ کلید باشد. عبارت \fIaction\fP نام عمل less است، برگرفته از فهرست‌های موجود در بخش‌های EXAMPLE در ادامه. نویسه‌ها در \fIstring\fP می‌توانند به‌صورت تحت‌اللفظی ظاهر شوند، یا اینکه یک علامت کَرِت (^) پیشوند آن‌ها شود تا کلید کنترل را نشان دهد. یک بک‌اسلش به‌دنبال یک تا سه رقم اکتال می‌تواند برای مشخص کردن یک نویسه با مقدار اکتال آن استفاده شود. یک بک‌اسلش به‌همراه نویسه‌های مشخصی، نویسه‌های ورودی را به‌صورت زیر تعیین می‌کند: .RS 5m .TS l l l. \eb BACKSPACE (0x08) \ee ESCAPE (0x1B) \en NEWLINE (0x0A) \er RETURN (0x0D) \et TAB (0x09) .TE .RE .PP ترکیب \ek که به دنبال آن یک یا دو نویسه می‌آید، نشان‌دهندهٔ نویسه(هایی) است که هنگام فشرده شدن یکی از این کلیدها تولید می‌شود: .RS 5m .TS l l. \ekb BACKSPACE (کلید BACKSPACE؛ ممکن است با \eb متفاوت باشد) \ekB ctrl-BACKSPACE \ekd DOWN ARROW (پیکان رو به پایین) \ekD PAGE DOWN (صفحه بعد) \eke END (پایان) \ekE ctrl-END \ekF shift-END \ekh HOME (آغاز) \ekH ctrl-HOME \ekI shift-HOME \eki INSERT (درج) \ekl LEFT ARROW (پیکان چپ) \ekL ctrl-LEFT ARROW \ekM shift-LEFT ARROW \ekr RIGHT ARROW (پیکان راست) \ekR ctrl-RIGHT ARROW \ekS shift-RIGHT ARROW \ekt BACKTAB \eku UP ARROW (پیکان بالا) \ekU PAGE UP (صفحه قبل) \ekx DELETE (حذف) \ekX ctrl-DELETE \ek1 F1 \ekp1 کلید پایین سمت چپ در صفحه کلید عددی \ekp2 کلید پایین وسط در صفحه کلید عددی \ekp3 کلید پایین سمت راست در صفحه کلید عددی \ekp4 کلید وسط سمت چپ در صفحه کلید عددی \ekp5 کلید مرکز در صفحه کلید عددی \ekp6 کلید وسط سمت راست در صفحه کلید عددی \ekp7 کلید بالا سمت چپ در صفحه کلید عددی \ekp8 کلید بالا وسط در صفحه کلید عددی \ekp9 کلید بالا سمت راست در صفحه کلید عددی \ekp0 0 در صفحه کلید عددی \ekp* * در صفحه کلید عددی \ekp/ / در صفحه کلید عددی \ekp\- \- در صفحه کلید عددی \ekp+ + در صفحه کلید عددی \ekp. . در صفحه کلید عددی \ekp, , در صفحه کلید عددی \ekpe ENTER در صفحه کلید عددی .TE .RE .PP یک بک‌اسلش که به دنبال آن هر نویسهٔ دیگری بیاید نشان می‌دهد که آن نویسه باید به صورت تحت‌اللفظی در نظر گرفته شود. نویسه‌هایی که باید پیش از آن‌ها بک‌اسلش قرار گیرد شامل علامت هشتک (^)، فاصله، تب، علامت هش (#) و خود بک‌اسلش هستند. .PP یک کنش ممکن است با یک رشتهٔ «اضافی» (extra) دنبال شود. هنگامی که چنین دستوری در حین اجرای .BR less وارد شود، کنش انجام شده و سپس رشتهٔ اضافی درست مانند زمانی که در .BR less تایپ شده باشد، تجزیه می‌شود. این قابلیت را می‌توان در مواردی خاص برای گسترش کارکرد یک دستور به کار برد. برای نمونه، دستورهای «{» و «:t» را در مثال زیر ببینید. همچنین می‌توان از آن برای اجرای بیش از یک دستور هنگام فشردن یک کلید استفاده کرد. به عنوان مثال، اگر این خط در یک فایل lesskey باشد، فشردن کلید «B» ابتدا نشان «b» را تنظیم کرده و سپس رشتهٔ «next» را جستجو می‌کند: .PP .EX .nf B set\-mark b/next\en .fi .EE .PP رشتهٔ اضافی برای کنش «quit» معنای ویژه‌ای دارد: هنگامی که .B less خارج می‌شود، مقدار ASCII نخستین نویسهٔ رشتهٔ اضافی به عنوان کد خروج آن استفاده می‌شود. . .SH "مثالها (EXAMPLES)" فایل ورودی زیر، مجموعه‌ای از کلیدهای دستوری پیش‌فرض را که توسط .BR less استفاده می‌شوند، توصیف می‌کند. مستندات هر دستور را می‌توان در صفحهٔ راهنمای .B less تحت توالی کلیدی که آن دستور را فراخوانی می‌کند، یافت. .PP .RS 5m .TS l l. #command \er forw\-line \en forw\-line e forw\-line j forw\-line \ekd forw\-line \*^E forw\-line \*^N forw\-line k back\-line y back\-line \*^Y back\-line \*^K back\-line \*^P back\-line \eku 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 \e40 forw\-screen f forw\-screen \*^F forw\-screen \*^V forw\-screen \ekD forw\-screen b back\-screen \*^B back\-screen \eev back\-screen \ekU back\-screen z forw\-window w back\-window \ee\e40 forw\-screen\-force \eeb back\-screen\-force \eej forw\-newline \eek back\-newline F forw\-forever \eeF forw\-until\-hilite \eef forw\-bell\-hilite R repaint\-flush r repaint \*^R repaint \*^L repaint \eeu undo\-hilite \eeU clear\-search g goto\-line \ekh goto\-line \ekH goto\-line \ee{ \ekI goto\-line \ee{ \eke goto\-end \ekE goto\-end \ee} \ekF goto\-end \ee} < goto\-line \ee< goto\-line p percent % percent \ee( left\-scroll \ee) right\-scroll \ee{ no\-scroll \ee} end\-scroll \ekl left\-scroll \ekr right\-scroll \ekL no\-scroll \ekM no\-scroll \ekR end\-scroll \ekS end\-scroll { forw\-bracket {} } back\-bracket {} ( forw\-bracket () ) back\-bracket () [ forw\-bracket [] ] back\-bracket [] \ee\*^F forw\-bracket \ee\*^B back\-bracket G goto\-end \ee> goto\-end > goto\-end P goto\-pos \eeG goto\-end\-buffered \&= status \*^G status :f status / forw\-search ? back\-search \ee/ forw\-search * \ee? back\-search * n repeat\-search \een repeat\-search\-all N reverse\-search \eeN reverse\-search\-all & filter m set\-mark M set\-mark\-bottom \eem clear\-mark \&\*' goto\-mark \*^X\*^X goto\-mark E examine :e examine \*^X\*^V examine :n next\-file :p prev\-file \*^O\*^N osc8\-forw\-search \*^On osc8\-forw\-search \*^O\*^P osc8\-back\-search \*^Op osc8\-back\-search \*^O\*^O osc8\-open \*^Oo osc8\-open \*^O\*^L osc8\-jump \*^Ol osc8\-jump t next\-tag T prev\-tag :x index\-file :d remove\-file \- toggle\-option :t toggle\-option t s toggle\-option o ## با شروع رشته اضافی با یک خط تیره، از یک ## نام گزینه طولانی استفاده کنید؛ برای نمونه: ## s toggle\-option \-log\-file\en \&_ display\-option | pipe v visual ! shell # pshell + firstcmd \ee[M mouse \ee[< mouse6 \ekp1 goto\-end \ekp2 forw\-line \ekp3 forw\-screen \ekp4 left\-scroll \ekp6 right\-scroll \ekp7 goto\-line \ekp8 back\-line \ekp9 back\-screen \ekp0 noaction 0 \ekp* noaction * \ekp/ noaction / \ekp\- noaction \- \ekp+ noaction + \ekp. noaction . \ekp, noaction , H help h help \ek1 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 .TE .RE .SH "اولویت (PRECEDENCE)" دستورات مشخص‌شده توسط .B lesskey بر دستورات پیش‌فرض اولویت دارند. یک کلید دستور پیش‌فرض را می‌توان با قرار دادن آن در پرونده ورودی همراه با کنش "invalid" غیرفعال کرد. همچنین، می‌توان کلیدی را طوری تعریف کرد که با استفاده از کنش "noaction" هیچ کاری انجام ندهد. "noaction" شبیه به "invalid" است، اما .B less برای یک دستور "invalid" بوق خطا پخش می‌کند، اما برای دستور "noaction" این کار را انجام نمی‌دهد. علاوه بر این، تمام دستورات پیش‌فرض را می‌توان با افزودن این خط کنترلی به پرونده ورودی غیرفعال کرد: .PP #stop .PP این کار باعث می‌شود تمام دستورات پیش‌فرض نادیده گرفته شوند. خط #stop باید آخرین خط در آن بخش از پرونده باشد. .PP توجه داشته باشید که #stop می‌تواند خطرناک باشد. از آنجا که تمام دستورات پیش‌فرض غیرفعال می‌شوند، باید دستورات کافی را پیش از خط #stop فراهم کنید تا تمام کنش‌های لازم فعال شوند. برای مثال، تعریف نکردن یک دستور "quit" می‌تواند منجر به سردرگمی و درماندگی شود. . .SH "بخش ویرایش خط (LINE EDITING SECTION)" بخش ویرایش خط با این خط آغاز می‌شود: .PP .EX #line\-edit .EE .PP این بخش، کلیدهای مقیدشده جدیدی را برای دستورات ویرایش خط مشخص می‌کند، به شیوه‌ای مشابه روشی که کلیدهای مقیدشده برای دستورات معمولی در بخش #command مشخص می‌شوند. بخش ویرایش خط شامل فهرستی از کلیدها و کنش‌ها است، یک مورد در هر خط، مانند مثال زیر. . .SH "مثال (EXAMPLE)" پرونده ورودی زیر مجموعه‌ای از کلیدهای پیش‌فرض ویرایش خط را که توسط .B less استفاده می‌شوند، توصیف می‌کند: .PP .RS 5m .TS l l. #line\-edit \et forw\-complete \e17 back\-complete \eekt back\-complete \ee\et back\-complete ^L expand ^V literal ^A literal \eel right \ekr right \eeh left \ekl left \eeb word\-left \ee\ekl word\-left \ee\ekL word\-left \eew word\-right \ee\ekr word\-right \ee\ekR word\-right \eei insert \eki insert \eex delete \ekx delete \eeX word\-delete \eekx word\-delete \ekX word\-delete \ee\eb word\-backspace \ekB word\-backspace \ee0 home \ekh home \ee$ end \eke end \eek up \eku up \eej down \ekd down ^G abort \ekp1 end \ekp2 down \ekp4 left \ekp6 right \ekp7 home \ekp8 up \ekp0 noaction 0 \ekp* noaction * \ekp/ noaction / \ekp\- noaction \- \ekp+ noaction + \ekp. noaction . \ekp, noaction , \ee[M mouse \ee[< mouse6 .TE .RE . .SH "متغیرهای محیطی LESS (LESS ENVIRONMENT VARIABLES)" بخش متغیرهای محیطی با خط زیر آغاز می‌شود: .PP #env .PP به دنبال این خط، فهرستی از انتساب‌های متغیرهای محیطی قرار می‌گیرد. هر خط شامل یک نام متغیر محیطی، یک علامت مساوی (=) و مقداری است که باید به آن متغیر تخصیص داده شود. فاصله‌های خالی قبل و بعد از علامت مساوی نادیده گرفته می‌شوند. متغیرهایی که به این روش مقداردهی می‌شوند تنها برای .B less قابل مشاهده هستند. اگر متغیری در محیط سیستم و همچنین در پرونده lesskey مشخص شده باشد، مقدار موجود در پرونده lesskey اولویت دارد. . .PP اگر پس از نام متغیر به جای = از += استفاده شود، رشته به مقدار موجود متغیر الحاق می‌گردد. این قابلیت در حال حاضر تنها زمانی کار می‌کند که خطوط حاوی += بلافاصله پس از تعریف اصلی همان متغیر (با خط =) و بدون هیچ تعریف مداخله‌گر دیگری از متغیرهای دیگر قرار گیرند. این انتساب تنها می‌تواند به متغیری که پیش‌تر در همین پرونده تعریف شده الحاق کند و نمی‌تواند به متغیری در محیط سیستم چیزی بیفزاید. رشته به‌طور تحت‌اللفظی و بدون افزودن هیچ فاصلهٔ اضافی الحاق می‌شود؛ بنابراین اگر فاصله‌ای مورد نیاز است، باید به انتهای خط قبلی اضافه شود. (نمی‌توان آن را به ابتدای رشتهٔ += افزود زیرا همان‌طور که در بالا اشاره شد، فاصلهٔ پس از علامت مساوی نادیده گرفته می‌شود.) . .PP در رشتهٔ پس از علامت =، زیررشته‌ای به قالب ${NAME} با مقدار متغیر محیطی "NAME" جایگزین می‌شود. مقدار متغیر می‌تواند از محیط سیستم، یک پرونده lesskey پیشین، یا تعریفی قبلی در پرونده lesskey فعلی بیاید. جایگزینی‌های ساده متنی را می‌توان با استفاده از نحو ${NAME/STRING/REPL} انجام داد. این کار تمامی موارد "STRING" در متغیر محیطی نام‌برده را با متن "REPL" جایگزین می‌کند. STRING با استفاده از یک مقایسه متنی ساده تطبیق داده می‌شود؛ هیچ فرا‌نویسه‌ای (metacharacter) پشتیبانی نمی‌شود. هرگونه اسلش یا آکوالاد راست در STRING یا REPL باید با قرار دادن \fIدو\fP بک‌اسلش پیش از آن اسکیپ شود. اگر REPL یک رشته خالی باشد، تمامی موارد STRING حذف می‌شوند. اسلش درست قبل از علامت آکوالاد راست می‌تواند حذف شود. جایگزینی‌های چندگانه را می‌توان با نحو ${NAME/STRING1/REPL1/STRING2/REPL2} و به همین ترتیب انجام داد. . .SH "پیکربندی مشروط (CONDITIONAL CONFIGURATION)" اگر خطی با #version آغاز شود و به دنبال آن یک عملگر رابطه‌ای و شماره نسخه بیاید، باقی‌مانده خط تجزیه می‌شود اگر و تنها اگر نسخه در حال اجرای .B less (یا .BR lesskey ) با آن عملگر مطابقت داشته باشد. این ویژگی زمانی مفید است که یک پرونده lesskey توسط نسخه‌های متفاوتی از .B less استفاده شود. .PP برای مثال، فرض کنید دستور جدیدی به نام 'sideways\-search' در نسخه 777 از .B less اضافه شده باشد. در این صورت، خط زیر این دستور را به کلید Q اختصاص می‌دهد، اما تنها در نسخه‌هایی از .B less که از آن پشتیبانی می‌کنند. این خط توسط نسخه‌های پیش از 777 نادیده گرفته می‌شود. .PP .EX .nf #version >= 777 Q sideways\-search .fi .EE .PP این شش عملگر پشتیبانی می‌شوند: .RS 5m .TS l l. > بزرگتر از < کوچکتر از >= بزرگتر یا مساوی با <= کوچکتر یا مساوی با = مساوی با != نامساوی با .TE .RE .PP قابلیت #version در .B less و .B lesskey پیش از نسخه 594 پشتیبانی نمی‌شود. در آن نسخه‌های قدیمی‌تر، تمام خطوط #version نادیده گرفته می‌شوند. . .SH "مثالها (EXAMPLES)" پرونده ورودی زیر، هنگام اجرای .B less گزینه‌های \-i و \-S را تنظیم می‌کند و در نسخه 595 و بالاتر، گزینه \-\-color را اضافه می‌کند. .PP .EX .nf #env ## (Note that there must be a space at the end of the next line, ## to separate the \-\-color option from the \-S option.) LESS = \-i\ \-S\ #version\ >=\ 595\ \ LESS\ +=\ \-\-color=Hkc .fi .EE . .SH "همچنین ببینید (SEE ALSO)" .BR less (1) . .SH "هشدارها (WARNINGS)" در سیستم‌های MS-DOS و OS/2، کلیدهای خاصی دنباله‌ای از نویسه‌ها را ارسال می‌کنند که با یک نویسه NUL‏ (0) آغاز می‌شود. این نویسه NUL باید در یک فایل lesskey به‌صورت \e340 نشان داده شود. . .SH "کپی‌رایت (COPYRIGHT)" Copyright (C) 1984-2026 Mark Nudelman .PP برنامه less بخشی از پروژه GNU و یک نرم‌افزار آزاد است. شما می‌توانید آن را تحت شرایط یکی از موارد (1) مجوز GNU General Public License همان‌طور که توسط Free Software Foundation منتشر شده است؛ یا (2) Less License بازتوزیع کرده و/یا تغییر دهید. برای جزئیات بیشتر در رابطه با بازتوزیع، فایل README را در توزیع less ببینید. شما باید یک نسخه از GNU General Public License را همراه با کد منبع less دریافت کرده باشید؛ فایل COPYING را ببینید. در غیر این صورت، به Free Software Foundation به نشانی 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA بنویسید. همچنین شما باید نسخه‌ای از Less License را دریافت کرده باشید؛ فایل LICENSE را ببینید. .PP برنامه less به این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابلیت فروش (MERCHANTABILITY) یا مناسب بودن برای یک هدف خاص (FITNESS FOR A PARTICULAR PURPOSE). برای جزئیات بیشتر GNU General Public License را ببینید. . .SH "نویسنده (AUTHOR)" . Mark Nudelman .br گزارش باگ‌ها در .nh https://\*:github\*:.com/\*:gwsw/\*:less/\*:issues. .hy