| sk(1) | General Commands Manual | sk(1) |
نام (NAME)
sk - ابزار جستجوی فازی در Rust!
خلاصه دستور (SYNOPSIS)
sk [--tac] [--min-query-length] [--no-sort] [-t|--tiebreak] [-n|--nth] [--with-nth] [--hide-nth] [-d|--delimiter] [-e|--exact] [--regex] [--algo] [--case] [--typos] [--no-typos] [--normalize] [--split-match] [--last-match] [--scheme] [-b|--bind] [-m|--multi] [--no-multi] [--no-mouse] [-c|--cmd] [-i|--interactive] [-I ] [--color] [--highlight-line] [--no-hscroll] [--keep-right] [--skip-to-pattern] [--no-clear-if-empty] [--no-clear-start] [--no-clear] [--show-cmd-error] [--cycle] [--disabled] [--disable-pattern] [--layout] [--reverse] [--height] [--no-height] [--min-height] [--margin] [-p|--prompt] [--cmd-prompt] [--selector] [--multi-selector] [--ansi] [--tabstop] [--info] [--no-info] [--inline-info] [--header] [--header-lines] [--border] [--border-no-collapse] [--no-border] [--wrap] [--multiline] [--scrollbar] [--no-scrollbar] [--history] [--history-size] [--cmd-history] [--cmd-history-size] [--preview] [--preview-window] [--image] [-q|--query] [--cmd-query] [--read0] [--print0] [--print-query] [--print-cmd] [--print-score] [--print-header] [--print-current] [--output-format] [--no-strip-ansi] [-1|--select-1] [-0|--exit-0] [--sync] [--pre-select-n] [--pre-select-pat] [--pre-select-items] [--pre-select-file] [-f|--filter] [--shell] [--shell-bindings] [--man] [--listen] [--remote] [--popup] [--log-level] [--log-file] [--expect] [-h|--help] [-V|--version]
گزینهها (OPTIONS)
- -h, --help
- چاپ راهنما (مشاهده خلاصه با '-h')
- -V, --version
- چاپ نسخه
جستجو (SEARCH)
- --tac
- نمایش
نتایج به
ترتیب
معکوس
اغلب در ترکیب با --no-sort استفاده میشود
- --min-query-length <MIN_QUERY_LENGTH>
- حداقل طول
پرسوجو
برای شروع
نمایش
نتایج
نتایج تنها زمانی نمایش داده میشوند که طول پرسوجو دستکم به این تعداد نویسه برسد
- --no-sort
- نتایج
مرتبسازی
نشوند
اغلب در ترکیب با --tac استفاده میشود؛ مثال: history | sk --tac --no-sort
- -t, --tiebreak <TIEBREAK> [پیشفرض: score,begin,end]
- فهرست
جداشده با
کاما از
معیارهای
مرتبسازی
برای اعمال
در زمان
برابری
امتیازها.
* **score**: امتیاز الگوریتم تطبیق فازی
- هر معیار میتواند نقیض شود، مانند (-index)
- هر معیار تنها باید یک بار در فهرست آورده شودمقادیر ممکن:
- score
- -score
- begin
- -begin
- end
- -end
- length
- -length
- index
- -index
- pathname
- -pathname
- -n, --nth <NTH> [پیشفرض: ]
- فیلدهایی
که باید
تطبیق داده
شوند
عبارت نمایهساز فیلد میتواند یک عدد صحیح غیرصفر یا یک عبارت بازهای باشد (`[BEGIN]..[END]`). گزینههای `--nth` و `--with-nth` فهرستی جداشده با کاما از عبارات نمایهساز فیلد را دریافت میکنند.
**مثالها:**
1 فیلد اول
2 فیلد دوم
-1 فیلد آخر
-2 فیلد یکی مانده به آخر
3..5 از فیلد ۳ تا فیلد ۵
2.. از فیلد ۲ تا فیلد آخر
..-3 از فیلد اول تا فیلد سومی مانده به آخر
.. تمامی فیلدها - --with-nth <WITH_NTH> [پیشفرض: ]
- فیلدهایی
که باید
تبدیل شوند
برای جزئیات به nth مراجعه کنید
- --hide-nth <HIDE_NTH> [پیشفرض: ]
- فیلدهایی
که باید از
نمایش
پنهان شوند
ولی قابل
جستجو
بمانند
همان عبارات نمایهساز فیلد جداشده با کاما را مشابه **nth** میپذیرد. فیلدهای فهرستشده از سطر نمایش دادهشده حذف میشوند اما بخشی از متنی که برای تطبیق استفاده میشود باقی میمانند، بنابراین پرسوجو همچنان میتواند با آنها تطبیق یابد. نویسههای فیلدهای پنهانشده در برجستهسازی تطبیق و پیمایش افقی نادیده گرفته میشوند.
برای نحو عبارات نمایهساز فیلد به **nth** مراجعه کنید.
- -d, --delimiter <DELIMITER> [پیشفرض: [\t\n ]+]
- جداکننده
میان
فیلدها
در قالب عبارات باقاعده (regex)، به طور پیشفرض به سبک AWK است. توالیهای گریز مانند \x00، \t و \n پشتیبانی میشوند.
- -e, --exact
- اجرا در حالت تطبیق دقیق
- --regex
- شروع در حالت regex به جای تطبیق فازی
- --algo <ALGORITHM> [پیشفرض: arinae]
- الگوریتم
تطبیق فازی
- arinae (ari) جدیدترین الگوریتم
- `skim_v2` الگوریتم قدیمی skim
- clangd مورد استفاده در clangd برای تکمیل کلیدواژهها
- fzy الگوریتم برگرفته از fzy (https://github.com/jhawthorn/fzy)
- frizbee الگوریتم مورد استفاده در افزونه blink.cmp برای neovim
مقادیر ممکن:
- arinae: Arinae: الگوریتم طبیعی و مقاوم در برابر غلط املایی، پیشفرض
- clangd: الگوریتم تطبیق فازی Clangd
- fzy: الگوریتم تطبیق Fzy (https://github.com/jhawthorn/fzy)
- frizbee: الگوریتم تطبیق Frizbee، مقاوم در برابر غلط املایی
- skim_v2: الگوریتم تطبیق فازی قبلی skim (نسخه ۲)
- --case <CASE> [پیشفرض: smart]
- حساسیت به
حروف بزرگ و
کوچک
تعیین میکند که آیا هنگام تطبیق، بزرگی و کوچکی حروف نادیده گرفته شود یا خیر. توجه: این گزینه برای تطبیقدهنده Frizbee استفاده نمیشود، زیرا این الگوریتم از یک سامانه جریمه برای ترجیح دادن حساسیت به حروف بدون تحمیل آن استفاده میکند
مقادیر ممکن:
- respect: تطبیق حساس به حروف بزرگ و کوچک
- ignore: تطبیق بدون توجه به حروف بزرگ و کوچک
- smart: حالت هوشمند: غیرحساس به حروف مگر آنکه پرسوجو شامل حروف بزرگ باشد
- --typos [<TYPOS>] [پیشفرض: disabled]
- فعالسازی
تطبیق با
تساهل نسبت
به غلط
املایی
هنگامی که بدون مقدار ارسال شود (--typos)، از فرمول انطباقی (pattern_length / 4) استفاده میکند. زمانی که با یک مقدار ارسال شود (مانند --typos=2)، از آن عدد مشخص به عنوان بیشینه غلطهای املایی مجاز استفاده خواهد کرد. مقدار --typos=0 به صراحت تساهل غلط املایی را غیرفعال میکند. برای هر دو تطبیقدهنده fzy و frizbee اعمال میشود.
- --no-typos
- غیرفعالسازی تطبیق با تساهل نسبت به غلط املایی
- --normalize
- یکسانسازی
نویسههای
یونیکد
در صورت تنظیم، نشانههای تفکیککننده و حرکات/اعرابهای یونیکد و سایر موارد مشابه را نرمالسازی میکند
- --split-match [<SPLIT_MATCH>...]
- فعالسازی
تطبیق
تفکیکشده
و تعیین
جداکننده
تطبیق تفکیکشده الگوریتم تطبیق را به صورت تکهتکه اجرا میکند: foo:bar در صورت وجود جداکننده، ابتدا تمام موارد مطابق با foo، سپس :، و بعد bar را تطبیق میدهد، یا در صورت عدم وجود جداکننده، به صورت عادی تطبیق میدهد.
- --last-match
- برجستهسازی آخرین تطبیق یافتشده، نه اولین تطبیق. این کار تفکیک برابری (tiebreak) را روی مواردی مانند مسیرها که اولویت با تطبیق بخشهای انتهایی است، مناسبتر و کارآمدتر میکند
- --scheme <SCHEME> [پیشفرض: default]
-
مقادیر ممکن:
- default: طرحواره پیشفرض، بدون هیچ تغییری در گزینهها
- path: طرحواره مسیر: دورترین تطبیق را در مورد مربوطه یافته و pathname را به عنوان معیار اصلی تفکیک برابری تنظیم میکند
- history: طرحواره تاریخچه: نمایه (index) را به عنوان اولین معیار تفکیک برابری تحمیل میکند
- -b, --bind [<BIND>...] [پیشفرض: ]
- اتصالات
کلید،
رویداد و
کنش جداشده
با ویرگول
گزینه `--bind` عبارتهای `<trigger>:<action>` جداشده با ویرگول را دریافت میکند. یک محرک (trigger) میتواند یک کلید، اتصال ماوس `double-click`، یک رویداد یابنده (`change`، `start`، `load`، `result`، `focus`، `zero`، یا `one`)، یا نام یک کنش باشد. از پیشوند `act-` برای محرکهای کنش استفاده کنید؛ استفاده از آن برای جلوگیری از ابهام توصیه میشود و در صورتی که نام کنش همنام یک کلید نیز باشد الزامی است، برای مثال `act-up:last`. برای جزئیات بخش [KEYBINDS] و برای مقادیر پیشفرض زیربخش [Default key bindings] را ببینید.
**مثال**: `sk --bind=ctrl-j:accept,load:last,act-up:down`
## چندین کنش را میتوان با استفاده از جداکننده + زنجیرهای کرد.
**مثال**: `sk --bind 'ctrl-a:select-all+accept'`
# رفتارهای ویژه
با کنشهای `execute(...)` و `reload(...)`، میتوانید دستورهای دلخواه را بدون خروج از sk اجرا کنید. برای مثال، میتوانید با متصل کردن کلید enter به دستور less به صورت زیر، sk را به یک مرورگر فایل ساده تبدیل کنید:
```bash sk --bind "enter:execute(less {})" ```
نکته: اگر هیچ آرگومانی به reload داده نشود، دستور پیشفرض اجرا میشود.
میتوانید از همان عبارتهای جاینگهدار در --preview استفاده کنید.
ابزار `sk` هنگام اجرای یک دستور به صفحه جایگزین تغییر وضعیت میدهد. با این حال، اگر انتظار میرود که دستور به سرعت به پایان برسد و به خروجی آن علاقهای ندارید، ممکن است ترجیح دهید به جای آن از execute-silent استفاده کنید، که دستور را بدون تغییر صفحه به صورت خاموش اجرا میکند. توجه داشته باشید که sk تا زمان پایان یافتن دستور پاسخگو نخواهد بود. برای اجرای ناهمگام، دستور خود را به عنوان یک فرایند پسزمینه اجرا کنید (یعنی افزودن `&`).
با کنشهای `if-query-empty` و `if-query-not-empty`، میتوانید کنش مورد نظر برای اجرا را بر اساس شرط پرسوجو مشخص کنید. برای مثال:
`sk --bind 'ctrl-d:if-query-empty(abort)+delete-char'`
اگر پرسوجو خالی باشد، skim کنش abort را اجرا میکند، در غیر این صورت کنش delete-char را اجرا خواهد کرد. این معادل 'delete-char/eof' است.
- -m, --multi
- فعالسازی
انتخاب
چندگانه
بهطور پیشفرض از Tab و S-Tab برای انتخاب استفاده میکند
- --no-multi
- غیرفعالسازی انتخاب چندگانه
- --no-mouse
- غیرفعالسازی ماوس
- -c, --cmd <CMD>
- دستوری که
در حالت
تعاملی
بهصورت
پویا
فراخوانی
میشود
در سیستمهای شبهیونیکس با استفاده از sh -c و در ویندوز با cmd /c اجرا خواهد شد
- -i, --interactive
- اجرای skim در
حالت
تعاملی
در حالت تعاملی، sk دستور مشخصشده توسط گزینه --cmd را اجرا کرده و نتایج را نمایش میدهد.
- -I <REPLSTR> [پیشفرض: {}]
- جایگزینی replstr با مورد انتخابشده در دستورها
- --color <COLOR>
- تنظیم تم
رنگی
قالب: [BASE][,COLOR:ANSI[:ATTR1:ATTR2:..]] برای جزئیات بخش [THEME] را ببینید
- --highlight-line
- برجستهسازی کل خط فعلی، نه فقط متن آن
- --no-hscroll
- غیرفعالسازی پیمایش افقی
- --keep-right
- نمایان
نگهداشتن
انتهای سمت
راست خط در
هنگام
سرریز
تنها زمانی مؤثر است که رشته پرسوجو خالی باشد
- --skip-to-pattern <SKIP_TO_PATTERN>
- نمایش
الگوی
منطبقشده
در ابتدای
خط
خط با ابتدای الگوی منطبقشده آغاز خواهد شد. تنها زمانی مؤثر است که رشته پرسوجو خالی باشد. برای صرفنظر کردن از نمایش ابتدای مسیرها در نتایج rg/grep طراحی شده است.
برای مثال: sk -i -c "rg {q} --color=always" --skip-to-pattern '[^/]*:' --ansi
- --no-clear-if-empty
- عدم
پاکسازی
خط قبلی در
صورت
بازگرداندن
نتیجه خالی
توسط دستور
در صورتی که دستور جدید نتیجهای خالی برگرداند، موارد قبلی را پاک نمیکند. این قابلیت ممکن است برای کاهش پرش صفحه هنگام تایپ دستورهای جدید در شرایطی که دستورهای نیمهکاره معتبر نیستند، مفید باشد.
این رفتار پیشفرض نیست زیرا موارد استفاده مشابه برای `grep` و `rg` قبلاً بهینهسازی شدهاند؛ جایی که نتایج خالی پرسوجو در واقع به معنای «خالی» بودن است و نتایج قبلی باید پاک شوند.
- --no-clear-start
- عدم پاکسازی موارد در هنگام شروع
- --no-clear
- عدم
پاکسازی
صفحه در
هنگام خروج
رابط کاربری یابنده را در هنگام خروج پاک نمیکند. اگر skim در حالت تمامصفحه اجرا شده باشد، به صفحه اصلی بازنخواهد گشت، بنابراین باید به صورت دستی دستور tput rmcup را برای بازگشت اجرا کنید. این گزینه میتواند برای جلوگیری از پرش صفحه در زمانی که برنامه شما نیاز دارد skim را چندین بار به ترتیب اجرا کند، به کار رود.
- --show-cmd-error
- نمایش پیام خطا در صورت شکست دستور
- --cycle
- چرخش نتایج با بازگشت به ابتدا یا انتها هنگام پیمایش
- --disabled
- غیرفعالسازی کامل تطبیق
- --disable-pattern <DISABLE_PATTERN>
- غیرفعالسازی موارد بر اساس این الگوی عبارت باقاعده (regex).SH "چیدمان (LAYOUT)"
- --layout <LAYOUT> [پیشفرض: default]
- تنظیم
چیدمان
مقادیر ممکن:
- default: نمایش از پایین صفحه
- reverse: نمایش از بالای صفحه
- reverse-list: نمایش از بالای صفحه، اعلان در پایین
- --reverse
- میانبری برای چیدمان معکوس (reverse)
- --height <HEIGHT> [پیشفرض: 100%]
- ارتفاع
پنجرهٔ skim
میتواند تعداد سطر یا درصد باشد. مقدار منفی برای تعداد سطر، از ارتفاع ترمینال منهای مقدار مشخصشده (term height - value) بهعنوان ارتفاع استفاده میکند.
- --no-height
- غیرفعالسازی ارتفاع (اجبار به حالت تمامصفحه)
- --min-height <MIN_HEIGHT> [پیشفرض: 10]
- حداقل
ارتفاع
پنجرهٔ skim
بهصورت
تعداد
سطرهای
غیرمنفی
باید تعداد سطر غیرمنفی باشد، نه درصد. هنگامی که ارتفاع بهصورت درصد تعیین شده باشد کاربرد دارد. در صورت مشخص نشدن --height نادیده گرفته میشود.
- --margin <MARGIN> [پیشفرض: 0]
- حاشیهٔ
صفحه
برای هر جهت، میتواند تعداد سطر یا درصدی از اندازهٔ ترمینال باشد
قالب میتواند یکی از موارد زیر باشد:
- TRBL
- TB,RL
- T,RL,B
- T,R,B,L مثال: 1,10% - -p, --prompt <PROMPT> [پیشفرض: > ]
- تنظیم اعلان (prompt)
- --cmd-prompt <CMD_PROMPT> [پیشفرض: c> ]
- تنظیم اعلان در حالت دستور (command mode)
- --selector <SELECTOR_ICON> [پیشفرض: >]
- تنظیم نماد مورد انتخابشده
- --multi-selector <MULTI_SELECT_ICON> [پیشفرض: >]
- تنظیم نماد موارد چندگانهانتخابشده
نمایش (DISPLAY)
- --ansi
- تجزیهٔ
کدهای رنگی
ANSI در
رشتههای
ورودی
هنگام استفاده از skim بهعنوان یک کتابخانه، این گزینه اثری ندارد و تجزیهٔ ansi باید با تزریق دستی یک cmd_collector فعال شود، مانند نمونه:
use skim::prelude::*;
let _options = SkimOptionsBuilder::default()
.cmd("ls --color")
.cmd_collector(Rc::new(RefCell::new(SkimItemReader::new(
SkimItemReaderOption::default().ansi(true),
))) as Rc<RefCell<dyn CommandCollector>>)
.build()
.unwrap(); - --tabstop <TABSTOP> [پیشفرض: 8]
- تعداد فاصلههایی (spaces) که یک تب (tab) را تشکیل میدهند
- --info <INFO> [پیشفرض: default]
- تنظیم
موقعیت
نمایش
تعداد
نتایج
منطبق
- hidden عدم نمایش اطلاعات
- inline[:SEP] نمایش اطلاعات در همان سطر ورودی با یک جداکنندهٔ اختیاری غیرپیشفرض
- default نمایش اطلاعات در سطری اختصاصی بالای ورودی
- left نمایش تمام اطلاعات بهصورت چپچین در سطری اختصاصی بالای ورودی
- right نمایش تمام اطلاعات بهصورت راستچین در سطری اختصاصی بالای ورودی
- inline-right[:SEP] نمایش اطلاعات بهصورت راستچین در همان سطر ورودی با یک جداکنندهٔ اختیاری غیرپیشفرض - --no-info
- نام مستعار برای --info=hidden
- --inline-info
- نام مستعار برای --info=inline
- --header <HEADER>
- تنظیم
سرآیند،
نمایشیافته
در کنار
اطلاعات
رشتهٔ ارائهشده بهعنوان سرآیند چسبان چاپ خواهد شد. سطرها بدون در نظر گرفتن گزینهٔ --layout به همان ترتیب ارائهشده از بالا به پایین نمایش مییابند و تحت تأثیر --with-nth قرار نمیگیرند. کدهای رنگی ANSI حتی در صورت عدم تنظیم --ansi پردازش میشوند.
- --header-lines <HEADER_LINES> [پیشفرض: 0]
- تعداد
سطرهایی از
ورودی که
بهعنوان
سرآیند در
نظر گرفته
میشوند
N سطر نخست ورودی بهعنوان سرآیند چسبان در نظر گرفته میشوند. هنگامی که --with-nth تنظیم شده باشد، این سطرها درست مانند سایر سطرهای پس از خود تبدیل میشوند.
- --border [<BORDER>...] [پیشفرض: none]
- ترسیم
حاشیه
پیرامون
اجزای رابط
کاربری
مقادیر ممکن:
- force-off: غیرفعالسازی اجباری کادرها، حتی در پنجرههای بازشو که با no_border تنظیم شدهاند
- none
- plain
- rounded
- double
- thick
- light-double-dashed
- heavy-double-dashed
- light-triple-dashed
- heavy-triple-dashed
- light-quadruple-dashed
- heavy-quadruple-dashed
- quadrant-inside
- quadrant-outside
- --border-no-collapse
- عدم ادغام حاشیههای مجاور در یک سطر یا ستون مشترک
- --no-border
- غیرفعالسازی تمام حاشیهها، از جمله در پنجرههای بازشوی tmux/zellij
- --wrap
- شکستن خطوط آیتمها در فهرست موارد
- --multiline [<MULTILINE>]
- تقسیم متن
موارد به
چند سطر
نمایشی بر
اساس
نویسهٔ
جداکنندهٔ
تعیینشده؛
در صورت
تنظیم بودن
read0 پیشفرض
بر روی \n و در
غیر این
صورت بر روی
\\n خواهد بود
(تطابق با \n
نویسهای
در متن)
متن هر مورد بر اساس جداکننده تقسیم شده و هر بخش بهصورت سطری مجزا درون ردیف همان مورد نمایش مییابد.
- --scrollbar <THUMB> [پیشفرض: ▐]
- تنظیم سبک
نوار
پیمایش
برای فهرست
موارد
مقدار اختیاری بهعنوان نشانگر استفاده میشود
- --no-scrollbar
- غیرفعالسازی نوار پیمایش در فهرست موارد
- --popup [<POPUP>...]
- اجرا درون
یک پنجرهٔ
بازشوی tmux یا
zellij
قالب: `sk --popup <center|top|bottom|left|right>[,SIZE[%]][,SIZE[%]]` نکته: این گزینه ابتدا سعی میکند نشست Zellij و سپس نشست Tmux را شناسایی کند این بدان معناست که در نشستهای تودرتو، `skim` نشست Zellij را نسبت به Tmux در اولویت قرار میدهد.SH "تاریخچه (HISTORY)"
- --history <HISTORY_FILE>
- فایل
تاریخچه
بارگذاری تاریخچه جستجو از فایل مشخصشده و بهروزرسانی آن پس از اتمام کار.
در صورت فعال بودن، کلیدهای میانبر CTRL-N و CTRL-P بهطور خودکار به next-history و previous-history نگاشت میشوند.
- --history-size <HISTORY_SIZE> [پیشفرض: 1000]
- حداکثر تعداد مدخلهای تاریخچه جستجو برای نگهداری
- --cmd-history <CMD_HISTORY_FILE>
- فایل
تاریخچه
دستورها
بارگذاری تاریخچه دستورهای ورودی از فایل مشخصشده و بهروزرسانی آن پس از اتمام کار.
در صورت فعال بودن، کلیدهای میانبر CTRL-N و CTRL-P بهطور خودکار به next-history و previous-history نگاشت میشوند.
- --cmd-history-size <CMD_HISTORY_SIZE> [پیشفرض: 1000]
- حداکثر تعداد مدخلهای تاریخچه دستورها جهت نگهداری
پیشنمایش (PREVIEW)
- --preview <PREVIEW>
- دستور
پیشنمایش
اجرای دستور دادهشده با `sh -c` در لینوکس و `cmd /c` در ویندوز برای خط جاری، و نمایش نتیجه در پنجره پیشنمایش. نماد `{}` در دستور، جایبانی است که با رشته خط جاری (درون گیومه تک) جایگزین میشود. برای تبدیل رشته جایگزین، عبارتهای اندیس فیلد را بین آکولادها مشخص کنید (برای جزئیات بیشتر به بخش FIELD INDEX EXPRESSION مراجعه کنید).
**مثالها**:
```bash sk --preview='head -$LINES {}' ls -l | sk --preview="echo user={3} when={-4..-2}; cat {-1}" --header-lines=1
- --preview-window <PREVIEW_WINDOW> [پیشفرض: right:50%]
- چیدمان
پنجره
پیشنمایش
قالب: [up|down|left|right][:SIZE][:hidden][:[no]wrap][:[no]pty][:+SCROLL[-OFFSET]]
چیدمان پنجره پیشنمایش را مشخص میکند. اگر آرگومان به :hidden ختم شود، پنجره پیشنمایش بهطور پیشفرض پنهان خواهد بود تا زمانی که کنش toggle-preview فعال شود. خطوط طولانی بهطور پیشفرض کوتاه میشوند. شکستن خطوط (Line wrap) با پرچم :wrap قابل فعالسازی است. برای دستورهای تعاملیتر یا پیشنمایشهایی که رابطهای پیچیده ترسیم میکنند، پیشنمایش میتواند با پرچم :pty از یک PTY استفاده کند.
نکته: پیشنمایش در لینوکس و در حالتی که wrap تنظیم نشده باشد، در یک PTY (نشست تعاملی) اجرا خواهد شد.
مقدار SIZE میتواند یکی از موارد زیر باشد: - مقدار 0، که پنجره پیشنمایش را پنهان میکند - یک اندازه مثبت (مثلاً 20) - درصدی از کل اندازه (مثلاً 50%) - یک اندازه منفی، که اندازه تمام عناصر به جز پیشنمایش را روی آن مقدار تنظیم میکند
عبارت +SCROLL[-OFFSET] آفست پیمایش اولیه پنجره پیشنمایش را مشخص میکند. SCROLL میتواند یک عدد صحیح عددی یا عبارت اندیس تکفیلدی باشد که به یک عدد صحیح عددی ارجاع دارد. بخش اختیاری -OFFSET برای تنظیم آفست پایه است تا بتوانید متن بالای آن را ببینید. این مقدار باید به صورت یک عدد صحیح عددی (-INTEGER)، یا به صورت مخرج کسر (-/INTEGER) برای تعیین کسری از ارتفاع پنجره پیشنمایش داده شود.
مثالها:
# موقعیتها و اندازههای غیرپیشفرض پنجره پیمایش
sk --preview="head {}" --preview-window=up:30%
sk --preview="file {}" --preview-window=down:2
# آفست پیمایش اولیه روی شماره خط هر سطر از
# خروجی git grep منهای ۵ خط (-5) تنظیم شده است
git grep --line-number '' |
sk --delimiter: --preview 'nl {1}' --preview-window +{2}-5
# پیشنمایش با bat، خط منطبق در وسط پنجره قرار میگیرد (-/2)
git grep --line-number '' |
sk --delimiter : \
--preview 'bat --style=numbers --color=always --highlight-line {2} {1}' \
--preview-window +{2}-/2 - --image [<IMAGE>...]
- فعالسازی
پیشنمایش
تصویر
این گزینه آرگومان پیشنمایش را به جای اجرا به عنوان یک دستور، به عنوان یک تصویر رندر میکند.
اگر روی detect تنظیم شود یا مقداری داده نشود، هنگام راهاندازی تلاش میکند تا backendهای تصویر موجود را شناسایی کند، که تأخیر اندکی قبل از اولین رندر ایجاد خواهد کرد. اگر روی halfblocks تنظیم شود، همواره از روش رندر halfblocks استفاده خواهد کرد.
نکته: شناسایی backend هنگام ارسال دادهها از طریق پایپ (pipe) به skim کار نخواهد کرد؛ به جای find . -type f | sk --image از SKIM_DEFAULT_COMMAND="find . -type f" sk --image استفاده کنید.
مقادیر ممکن:
- detect: پیشفرض: تشخیص خودکار backend موجود هنگام راهاندازی
- halfblocks: اجبار به استفاده از halfblocks در صورت تمایل به پیشنمایشهای ماتتر اما با راهاندازی سریعتر، یا در صورت ناموفق بودن تشخیص
اسکریپتنویسی (SCRIPTING)
- -q, --query <QUERY>
- عبارت جستجوی اولیه
- --cmd-query <CMD_QUERY>
- عبارت جستجوی اولیه در حالت تعاملی
- --read0
- خواندن ورودی جداشده با نویسههای ASCII NUL(\0)
- --print0
- چاپ خروجی جداشده با نویسههای ASCII NUL(\0)
- --print-query
- چاپ عبارت جستجو به عنوان خط اول
- --print-cmd
- چاپ دستور به عنوان خط اول (پس از print-query)
- --print-score
- چاپ امتیاز پس از هر مورد
- --print-header
- چاپ سرآیند به عنوان خط اول (پس از print-score)
- --print-current
- چاپ مورد جاری (برجستهشده) به عنوان خط اول (پس از print-header)
- --output-format <OUTPUT_FORMAT>
- تنظیم قالب خروجی؛ در صورت تنظیم، تمامی گزینههای print_ را بازنویسی میکند. همانند preview یا دستورها بسط داده خواهد شد.
- --no-strip-ansi
- چاپ کدهای ANSI، بهگونهای که خروجی حتی هنگام فعال بودن --ansi دقیقاً با ورودی مطابقت داشته باشد
- -1, --select-1
- عدم ورود به رابط متنی (TUI) در صورتی که عبارت ارائهشده در -q تنها با یک مورد مطابقت داشته باشد و بازگرداندن همان مورد
- -0, --exit-0
- عدم ورود به رابط متنی (TUI) در صورتی که عبارت ارائهشده در -q با هیچ موردی تطابق نداشته باشد
- --sync
- جستجوی
همگام برای
پالایش
چندمرحلهای
جستجوی همگام برای پالایش چندمرحلهای. در صورت تعیین، skim رابط کاربری TUI را تنها پس از پایان جریان ورودی اجرا خواهد کرد؛ مانند: sk --multi | sk --sync
- --pre-select-n <PRE_SELECT_N> [پیشفرض: 0]
- پیشانتخاب n مورد نخست در حالت انتخاب چندگانه
- --pre-select-pat <PRE_SELECT_PAT> [پیشفرض: ]
- پیشانتخاب
موارد
منطبق در
حالت
انتخاب
چندگانه
برای نحو دقیق به مستندات مراجعه کنید: https://docs.rs/regex/1.4.1/regex
- --pre-select-items <PRE_SELECT_ITEMS> [پیشفرض: ]
- پیشانتخاب
موارد
جداشده با
نویسه خط
جدید (newline)
مثال: 'item1\nitem2'
- --pre-select-file <PRE_SELECT_FILE>
- پیشانتخاب موارد خواندهشده از این فایل
- -f, --filter <FILTER>
- عبارت جستجو برای حالت پالایش (filter)
- --shell <SHELL>
- تولید
اسکریپت
تکمیل
خودکار (completion)
شل
تولید اسکریپت تکمیل خودکار برای شل مشخصشده: bash، zsh، fish و غیره. خروجی میتواند مستقیماً فراخوانی (source) شده یا جهت بارگذاری خودکار در یک فایل ذخیره گردد. مثالها: source <(sk --shell bash) (استفاده فوری) sk --shell bash >> ~/.bash_completion (استفاده دائمی)
شلهای پشتیبانیشده: bash, zsh, fish, powershell, elvish
مقادیر ممکن:
- bash: شل Bourne Again SHell
- elvish: شل Elvish
- fish: شل Friendly Interactive SHell
- nushell: شل Nushell (nu)
- power-shell: شل PowerShell
- zsh: شل Zsh
- --shell-bindings
- تولید
کلیدهای
میانبر شل -
تنها برای
bash، zsh و fish
تولید اسکریپت کلیدهای میانبر پس از تکمیلهای شل؛ برای جزئیات بیشتر به گزینه shell مراجعه کنید
- --man
- تولید صفحه راهنما (man page) و ارسال آن به stdout
- --listen [<LISTEN>...]
- اجرای یک
سوکت IPC با
نام
اختیاری
(پیشفرض sk
است)
این سوکت کنشها (Actions) را در قالب Ron (مشابه کدهای Rust) دریافت میکند؛ برای مشاهده تمام کنشهای ممکن فایل ./src/tui/event.rs را ببینید. برای نوشتن در آن، گزینه --remote یا صفحه راهنما را ببینید
- --remote [<REMOTE>...]
- ارسال
دستورها به
یک سوکت IPC با
نام
اختیاری
(پیشفرض sk
است)
دستورها از stdin، در هر سطر یک مورد، با همان ساختار کنشها در پرچم bind خوانده میشوند. همچنین میتوان آنها را با استفاده از جداکننده + به صورت زنجیرهای متصل کرد. تمامی آرگومانهای دیگر نادیده گرفته خواهند شد
- --log-level <LOG_LEVEL>
- تنظیم سطح گزارشگیری (log level)
- --log-file <LOG_FILE>
- هدایت خروجی گزارشها به یک فایل.SH "منسوخشده (DEPRECATED)"
- --expect <EXPECT> [پیشفرض: ]
- منسوخ شده است، تنها به منظور سازگاری حفظ گردیده است. به جای آن، اتصال ()accept را ببینید.
حالتها (MODES)
حالت عادی (Normal mode)
در حالت
عادی، sk
ورودی را از
stdin میخواند
و نتایج را
بهصورت
تعاملی
نمایش
میدهد،
و سپس از
عبارت
جستجو برای
پالایش
فازی در
میان خطوط
ورودی
استفاده
میشود.
حالت تعاملی (Interactive mode)
حالت
تعاملی یک
حالت ویژه
است که به
شما امکان
میدهد
دستوری را
بهصورت
تعاملی
اجرا کرده و
نتایج را
نمایش دهید.
این حالت با
گزینهٔ `--interactive`
(یا `-i`) یا با
تعریف
نگاشت برای
کنش
`toggle-interactive`
(پیشفرض: <ctrl-q>)
فعال
میشود.
دستور مورد
نظر با
گزینهٔ `--cmd`
تعیین
میشود.
مثال: `sk --cmd 'rg {} --color=always'
--interactive` از `rg` برای
جستجوی
عبارت در
پوشهٔ جاری
استفاده
میکند و
نتایج را
بهصورت
تعاملی
نمایش
میدهد.
جستجو (SEARCH)
بهطور
پیشفرض، skim
در حالت
«جستجوی
گسترده» (`extended search`)
آغاز به کار
میکند که
در آن برخی
نویسهها
معنای خاصی
دارند.
مثال: `^test rs$ | sh$`
مواردی را
تطبیق
میدهد که
با test شروع
شده و با rs یا sh
خاتمه
مییابند.
عملگر AND (فاصله)
یک فاصله میان عبارتها به عنوان عملگر 'and' عمل کرده و مواردی را که با همهٔ عبارتها تطابق داشته باشند پالایش خواهد کرد.
عملگر OR (|)
یک خط عمودی میان عبارتها به عنوان عملگر 'or' عمل کرده و مواردی را که با یکی از عبارتها تطابق داشته باشند پالایش خواهد کرد.
تطبیق دقیق (')
اگر
عبارتی
دارای
پیشوند `'`
باشد، sk به
دنبال
رخدادهای
دقیق آن
عبارت
میگردد.
جستجوی
دقیق
میتواند
با پرچم خط
فرمان `--exact`
بهصورت
پیشفرض
فعال شود. در
حالت دقیق،
`'` تطبیق
دقیق را
برای آن
عبارت
غیرفعال
میکند.
تطبیق مهارشده (^|$)
اگر یک عبارت دارای پیشوند `^` (یا به ترتیب، پسوند `$`) باشد، sk به دنبال مواردی میگردد که با آن عبارت دقیق آغاز میشوند (یا به ترتیب پایان مییابند).
نفی (!)
اگر عبارتی دارای پیشوند `!` باشد، sk مواردی را که با این عبارت تطبیق دارند مستثنی خواهد کرد.
کلیدهای میانبر (KEYBINDS)
اتصالها
را میتوان
با گزینهٔ `--bind`
تنظیم کرد
که فهرستی
جداشده با
کاما از
عبارتهای
`<trigger>:<action>[+action2]` را
دریافت
میکند. یک
محرک (trigger)
میتواند
یک کلید، یک
رویداد
یابنده، یا
یک نام کنش
باشد.
کنشها
میتوانند
آرگومان
دریافت
کنند که این
آرگومانها
یا میان
پرانتز `reload(ls)`
یا پس از
دونقطه `reload:ls`
مشخص
میشوند.
کلیدهای موجود (نامهای مستعار در پرانتز)
* ctrl-[a-z]
* ctrl-space
* ctrl-alt-[a-z]
* alt-[a-zA-Z]
* alt-[0-9]
* f[1-12]
* enter
* space
* bspace (bs)
* alt-up
* alt-down
* alt-left
* alt-right
* alt-enter
* alt-space
* alt-bspace (alt-bs)
* alt-/
* tab
* btab (shift-tab)
* esc
* del
* up
* down
* left
* right
* home
* end
* pgup
* pgdn
* shift-up
* shift-down
* shift-left
* shift-right
* alt-shift-up
* alt-shift-down
* alt-shift-left
* alt-shift-right
* double-click
* هر نویسهٔ
تکی
* change: عبارت
جستجو (query)
تغییر
میکند
* start: برنامه skim
وارد حلقهٔ
رویداد خود
میشود؛
فقط یک بار
فعال
میگردد
* load: بخشهای reader
و matcher خواندن
ورودی فعلی
را به پایان
میرسانند؛
یک بار به
ازای هر بار
خواندن، از
جمله reloadها،
فعال
میشود
* result: عملیات
پالایش
(فیلتر کردن)
برای عبارت
جستجوی
فعلی کامل
میشود
* focus: آیتم
دارای
تمرکز به
دلیل
جابهجایی
مکاننما
یا
بهروزرسانی
نتایج
تغییر
میکند
* zero: جریان
ورودی کامل
شده و
جستجوی
نهایی هیچ
تطابقی
ندارد
* one: جریان
ورودی کامل
شده و
جستجوی
نهایی
دقیقاً یک
تطابق
دارد
کنشها به عنوان محرکهای مقیدسازی (Actions as binding triggers)
کنشها میتوانند به عنوان محرکهای مقیدسازی (binding triggers) نیز به کار روند. یک زنجیرهٔ پسآیند که به نام یک کنش مقید شده است، بلافاصله پس از آن کنش اجرا میشود. برای محرکهای کنش از پیشوند `act-` استفاده کنید؛ بهکارگیری آن برای رفع ابهام توصیه میشود و زمانی که نام کنش همنام با یک کلید باشد، مانند `act-up:last`، الزامی است.
زنجیرههای پسآیند از معناشناسی غیربازگشتی (`noremap`) پیروی میکنند: کنشهای آنها دیگر محرکهای کنش را فعال نمیکنند. برای صرفنظر کردن از رفتار پیشفرضِ کنش محرک، `suppress` را اضافه کنید؛ برای مثال: `act-up:suppress+down`.
کنشها (Actions)
* abort: لغو
عملیات و
خروج با خطا
* accept(...): پذیرش
مورد
انتخابشده
و خروج با
کلید
اختیاری.
هنگام فعال
شدن
مقیدسازی،
این
آرگومان
چاپ میشود.
* add-char(...): افزودن
یک نویسه به
عبارت
جستجو
* append-and-select: الحاق به
موارد
انتخابشده
و انتخاب
* backward-char: حرکت
مکاننما
به اندازهٔ
یک نویسه به
عقب
* backward-delete-char: حذف
نویسهٔ قبل
از
مکاننما
* backward-delete-char/eof: حذف
نویسهٔ قبل
از
مکاننما
یا خروج در
صورت خالی
بودن عبارت
جستجو
* backward-kill-word: حذف
کلمهٔ قبل
از
مکاننما
* backward-word: حرکت
مکاننما
به اندازهٔ
یک کلمه به
عقب
* beginning-of-line: انتقال
مکاننما
به ابتدای
خط
* bind(...): مقید کردن
یک یا چند
کلید به
زنجیرههایی
از کنشها.
آرگومان یک
فهرست
جداشده با
کاما از
مقیدسازیهای
`trigger:action[+action]` است که
با همان نحو
`--bind`، شامل
محرکهای
کنش نظیر
`act-up:last`، اضافه
میشوند.
* cancel: لغو
عملیات
فعلی
* clear-screen: پاک کردن
صفحه نمایش
* delete-char: حذف
نویسهٔ زیر
مکاننما
* delete-char/eof: حذف
نویسه یا
خروج در
صورت خالی
بودن
* deselect-all: لغو
انتخاب
همهٔ موارد
* down(...): انتقال
انتخاب به
اندازهٔ N
مورد به
پایین
* end-of-line: انتقال
مکاننما
به انتهای
خط
* execute(...): اجرای یک
دستور.
آرگومان یک
دستور است؛
برای
جزئیات به COMMAND
EXPANSION مراجعه
کنید.
* execute-silent(...): اجرای
بیصدای یک
دستور.
آرگومان یک
دستور است؛
برای
جزئیات به COMMAND
EXPANSION مراجعه
کنید.
* first: پرش به
نخستین
مورد در
فهرست
* forward-char: حرکت
مکاننما
به اندازهٔ
یک نویسه به
جلو
* forward-word: حرکت
مکاننما
به اندازهٔ
یک کلمه به
جلو
* if-query-empty(...): اجرای
کنش در صورت
خالی بودن
عبارت
جستجو
* if-query-not-empty(...): اجرای
کنش در صورت
خالی نبودن
عبارت
جستجو
* if-non-matched(...): اجرای
کنش در صورت
تطابق
نداشتن هیچ
موردی
* ignore: نادیده
گرفتن کنش
* kill-line: حذف از
مکاننما
تا انتهای
خط
* kill-word: حذف کلمهٔ
بعد از
مکاننما
* last: پرش به
آخرین مورد
در فهرست
* next-history: رفتن به
مدخل بعدی
تاریخچه
(نیازمند `--history`
یا `--cmd-history`)
* half-page-down(...): پیمایش
به اندازهٔ
نیم صفحه به
پایین
* half-page-up(...): پیمایش
به اندازهٔ
نیم صفحه به
بالا
* page-down(...): پیمایش
به اندازهٔ
یک صفحه به
پایین
* page-up(...): پیمایش
به اندازهٔ
یک صفحه به
بالا
* preview-up(...): پیمایش
پیشنمایش
به سمت بالا
* preview-down(...): پیمایش
پیشنمایش
به سمت
پایین
* preview-left(...): پیمایش
پیشنمایش
به سمت چپ
* preview-right(...): پیمایش
پیشنمایش
به سمت راست
* preview-page-up(...): پیمایش
پیشنمایش
به اندازهٔ
یک صفحه به
بالا
* preview-page-down(...): پیمایش
پیشنمایش
به اندازهٔ
یک صفحه به
پایین
* previous-history: رفتن به
مدخل قبلی
تاریخچه
(نیازمند `--history`
یا `--cmd-history`)
* redraw: بازترسیم
مجدد صفحه
نمایش
* refresh-cmd: بازآوری
دستور
* refresh-preview: بازآوری
پیشنمایش
* restart-matcher:
راهاندازی
مجدد
تطبیقدهنده
(matcher)
* reload(...):
بارگذاری
مجدد به
همراه
دستور جدید
اختیاری
* rotate-mode: گردش
میان
حالتهای
تطبیق
* scroll-left(...): پیمایش
فهرست
موارد به چپ
* scroll-right(...): پیمایش
فهرست
موارد به
راست
* select-all: انتخاب
همهٔ موارد
* select-row(...): انتخاب
یک سطر مشخص
* select: انتخاب
مورد فعلی
* suppress:
فرونشاندن
رفتار
پیشفرض
کنشی که این
دستور به آن
مقید شده
است. تنها به
عنوان یک
کنش
پسآیند
متصل به یک
کنش دیگر
(مانند `act-up:suppress`)
معنادار
است: اثر خود
آن کنش را
خنثی
میکند تا
مابقی
زنجیرهٔ
پسآیند به
جای آن اجرا
شود. به خودی
خود یک عمل
بدون اثر
(معادل `ignore`)
است.
* set-cmd(...): تنظیم
دستور حالت
تعاملی (interactive-mode) و
اجرای مجدد
آن. آرگومان
یک عبارت
گسترشیافته
است؛ برای
جزئیات به COMMAND
EXPANSION مراجعه
کنید.
* set-header(...): تنظیم
سربرگ (یا
غیرفعال
کردن آن با
یک مقدار
خالی)
* set-preview-cmd(...): تنظیم
دستور
پیشنمایش
و اجرای
مجدد
پیشنمایش.
آرگومان یک
عبارت
گسترشیافته
است؛ برای
جزئیات به COMMAND
EXPANSION مراجعه
کنید.
* set-query(...): تنظیم
عبارت
جستجو روی
مقدار
گسترشیافته.
آرگومان یک
عبارت
گسترشیافته
است؛ برای
جزئیات به COMMAND
EXPANSION مراجعه
کنید.
* toggle: تغییر
وضعیت
انتخاب
مورد فعلی
* toggle-all: تغییر
وضعیت
انتخاب
همهٔ موارد
* toggle-in: تغییر
وضعیت
انتخاب و
انتقال به
داخل
* toggle-interactive: تغییر
وضعیت حالت
تعاملی
* toggle-out: تغییر
وضعیت
انتخاب و
انتقال به
خارج
* toggle-preview: تغییر
وضعیت
نمایش
پیشنمایش
* toggle-preview-wrap: تغییر
وضعیت
شکستن خطوط
در
پیشنمایش
* toggle-sort: تغییر
وضعیت
مرتبسازی
* top: پرش به
نخستین
مورد در
فهرست (نام
مستعار First)
* unbind(...): لغو
مقیدسازی
یک یا چند
کلید.
آرگومان
فهرستی با
کاما
جداشده از
کلیدها یا
محرکهای
کنش (مانند `act-up`)
برای لغو
پیوند است.
* unix-line-discard: دور
انداختن خط
(به شیوهٔ
یونیکس)
* unix-word-rubout: حذف کلمه
به سمت عقب
(به شیوهٔ
یونیکس)
* up(...): انتقال
انتخاب به
اندازهٔ N
مورد به
بالا
* yank: الصاق یا
جایگذاری
(paste)
* alt-b: backward-word
* alt-bspace: backward-kill-word
* alt-d: kill-word
* alt-f: forward-word
* alt-h: scroll-left
* alt-l: scroll-right
* bspace: backward-delete-char
* btab: toggle+up
* ctrl-a: beginning-of-line
* ctrl-b: backward-char
* ctrl-c: abort
* ctrl-d: abort
* ctrl-e: end-of-line
* ctrl-f: forward-char
* ctrl-g: abort
* ctrl-h: backward-delete-char
* ctrl-j: down
* ctrl-k: up
* ctrl-l: clear-screen
* ctrl-left: backward-word
* ctrl-n: down
* ctrl-p: up
* ctrl-q: toggle-interactive
* ctrl-r: rotate-mode
* ctrl-right: forward-word
* ctrl-u: unix-line-discard
* ctrl-w: unix-word-rubout
* ctrl-y: yank
* del: delete-char
* double-click: accept
* down: down
* end: end-of-line
* enter: accept
* esc: abort
* home: beginning-of-line
* left: backward-char
* pgdn: page-down
* pgup: page-up
* right: forward-char
* shift-btab: toggle+up
* shift-down: preview-down
* shift-home: beginning-of-line
* shift-left: backward-word
* shift-right: forward-word
* shift-tab: toggle+up
* shift-up: preview-up
* tab: toggle+down
* up: up
گسترش دستور (COMMAND EXPANSION)
در پرچم `preview`
و
مقیدسازیهای
`execute`، `reload`، `set-query`...،
ابزار sk
جانگهدارها
را بسط
خواهد داد:
* {} (یا --replstr در
صورت
استفاده) به
مورد فعلی
بسط داده
خواهد شد.
* {q} (یا {cq} به
دلایل
سازگاری با
نسخههای
قدیمی) به
ورودی
پرسوجوی
فعلی بسط
داده خواهد
شد.
* {+} در حالت multi-select
به موارد
انتخابشدهٔ
فعلی، یا در
حالت single-select به
مورد فعلی
بسط داده
خواهد شد.
* {n} به نمایهٔ
(index) مورد فعلی
بسط داده
خواهد شد.
* {+n} به
نمایه(های)
مورد(های)
متناظر با {+}
بسط داده
خواهد شد.
* {FIELD_INDEX_EXPRESSION} به
عبارت
نمایهٔ
فیلد که روی
مورد فعلی
اجرا
میشود
بسط داده
خواهد شد.
* {+FIELD_INDEX_EXPRESSION} به
عبارت
نمایهٔ
فیلد که روی
مورد(های) {+}
اجرا
میشود
بسط داده
خواهد شد.
دستور skim
برخی
عبارتهای
بین {..} را بسط
میدهد.
این
عبارتها
به فیلدهای
متناظر که
با گزینهٔ
`--delimiter|-d` از هم جدا
شدهاند
بسط
مییابند
(برای
جزئیات به
توضیحات آن
گزینه
مراجعه
کنید).
* عبارت `{n}`
فیلد n-اُم
خواهد بود.
* عبارت `{n..m}`
فیلدهای n تا
m (شامل هر
دو)، جداشده
با فاصله
خواهند بود.
* عبارت `{-n}`
فیلد n-اُم از
انتها
خواهد بود؛ -1
آخرین فیلد
است و به
همین
ترتیب.
متغیرهای محیطی (ENVIRONMENT VARIABLES)
SKIM_DEFAULT_COMMAND
در صورت
تنظیم، اگر
هیچ
ورودیای
از طریق
لولهکشی (pipe)
وارد نشود،
skim آیتمها
را با این
دستور
جمعآوری
میکند.
در صورت
تنظیم
نشدن،
مقدار
پیشفرض در
سیستمهای
شبهیونیکس
`find .` و در
ویندوز `dir /s /b /A:-D`
است.
SKIM_DEFAULT_OPTIONS
تجزیه شده و به عنوان گزینههای پیشفرض استفاده خواهد شد. مثال: `--reverse --multi`
SKIM_OPTIONS_FILE
اگر این
متغیر روی
مسیر یک
فایل موجود
تنظیم شده
باشد،
محتوای این
فایل تجزیه
شده و به
عنوان
گزینههای
پیشفرض
استفاده
میشود.
این فایل از `#`
به عنوان
نویسهی
آغاز توضیح
(کامنت)
پشتیبانی
میکند، که
میتوان با
استفاده از
`##` از آن گریز
(escape) زد.
مثال:
```
# Preview
--preview 'echo {}'
--preview-window 'left:30%' # Preview window
--reverse
--prompt '## '
```
NO_COLOR
در صورت تنظیم روی مقداری غیرخالی، رنگآمیزی را غیرفعال میکند
پوسته (THEME)
پوستههای
در دسترس:
* none: طرح رنگ
پایه
* molokai: طرح ۲۵۶
رنگی molokai
* light: طرح ۲۵۶
رنگی روشن
* 16: پوستهٔ
تیرهی base16
* bw: پوستهٔ
سیاهوسفید
* dark | default: طرح ۲۵۶
رنگی تیره،
مقدار
پیشفرض
* هر ۴ گونهی
catppuccin:
* catppuccin-latte
* catppuccin-macchiato
* catppuccin-frappe
* catppuccin-mocha
نامهای
رنگ در
دسترس:
* normal (یا رشتهی
خالی): متن
عادی
* matched (یا hl): متن
منطبقشده
* current (یا fg+):
پیشزمینهی
خط جاری
* bg+:
پسزمینهی
خط جاری
(حالت ویژه،
همیشه
پسزمینه
را تنظیم
میکند)
* current_match (یا hl+): متن
منطبق در خط
جاری
* query: متن
پرسوجو
* spinner: نویسهی
لودینگ/چرخان
(spinner)
* info: متن
اطلاعات
(تعداد
موارد
منطبق)
* prompt: متن اعلان
(prompt)
* cursor (یا pointer):
مکاننما/نشانهگر
* selected (یا marker):
نشانگر
مورد
انتخابشده
* header: متن
سرآیند
* border: خطوط
حاشیه
* scrollbar: نشانگر
نوار
پیمایش
فهرست
موارد
افزودن `-fg`،
`_fg`، `-bg`، `_bg`، `-underline` و `_underline`
بخش مربوطه
از
رنگ را
تنظیم
میکند.
برای
نمونه، `normal-fg`
(یا صرفاً `fg`)
رنگ
پیشزمینهی
عادی را
تعیین
خواهد کرد.
قالبهای
رنگ:
* 0-255: رنگ
پایانهٔ ANSI
* #rrggbb: رنگ ۲۴
بیتی
ویژگیهای
(attrs) در دسترس:
* x | regular:
بازنشانی
اصلاحکنندهها،
پیش از سایر
موارد
استفاده
شود
* b | bold
* u | underline
* c | crossed-out
* d | dim
* i | italic
* r | reverse
مثال:
گزینهٔ `--color
'16,normal-fg:0+bold,matched-fg:#ffffff+u,cursor-bg:#deadbe'`
کار را با
پوستهٔ base 16
آغاز کرده و
آن را با رنگ
پیشزمینهی
ضخیمِ ANSI 0
(سیاه)،
پیشزمینهی
زیرخطدار
با کد هگز ffffff
(کاملاً
سفید) برای
بخشهای
منطبق، و
پسزمینهی
مکاننمای
#deadbe (ظاهراً
صورتی
کمرنگ)
بازنویسی
میکند.
ابزار skim میتواند با استفاده از گزینههای `--listen` (و در صورت تمایل `--remote`) از طریق فرایندهای دیگر کنترل شود.
برای
دستیابی به
این هدف،
نمونه سرور
را با
استفاده از
`sk --listen optional_address` اجرا
کنید (نشانی
پیشفرض `sk`
است).
سپس برنامه
برای
دریافت
دستورالعملها
روی یک سوکت
نامگذاریشده
شروع به
شنود
میکند.
جهت ارسال
دستورالعملها،
میتوانید
از `sk --remote optional_address` یا
هر ابزار
دیگری که
امکان
تعامل با
چنین
سوکتهایی
را فراهم
میکند
استفاده
کنید،
مانند `socat` در
لینوکس: `echo 'ToggleIn' | socat
-u STDIN ABSTRACT-CONNECT:optional_address`.
دستورالعملها
متناظر با
کنشهای (Actions)
ابزار skim
هستند و
باید در
قالب Ron
ارسال شوند.
هنگام
استفاده از
`sk --remote`،
زنجیرهای
از کنشها
را با لوله (pipe)
ارسال کنید
(بخش KEYBINDS را
ببینید)،
برای نمونه:
`echo 'up+select-row' | sk --remote optional_address`
کدهای خروج (EXIT CODES)
* 0: موفقیت
* 1: تطابقی
یافت نشد
* 130: وقفه (ctrl-c یا esc)
* سایر موارد:
خطا
نسخه (VERSION)
v5.6.7
| sk 5.6.7 |