CHA-CONFIG(5) File Formats Manual CHA-CONFIG(5)

cha-config - راهنمای فایل پیکربندی مرورگر وب Chawan

مرورگر Chawan از پیکربندی گزینه‌های مختلفی مانند کلیدهای میانبر، شیوه‌نامه‌های کاربر (user stylesheets)، ترجیحات اختصاصی سایت و غیره پشتیبانی می‌کند. قالب پیکربندی مشابه toml است، با استثناهای زیر:

  • جدول‌های معمولی ([table]) و جدول‌های درون‌خطی (table = {}) معناشناسی متفاوتی دارند. اولی افزایشی (additive) است، به این معنی که مقادیر پیش‌فرض حذف نمی‌شوند. دومی مخرب (destructive) است و تمام تعاریف پیش‌فرض را در جدول مشخص‌شده پاک می‌کند.
  • عبارت [[table-array]] یک ساختار ساده‌نویسی برای [table-array.n] است، که در آن n تعداد آرایه‌های جدول اعلام‌شده است. به عنوان مثال، می‌توانید پیکربندی‌های اختصاصی سایت (siteconf) بی‌نام را با نحو [[siteconf]] تعریف کنید.

مسیر استاندارد فایل پیکربندی ~/.chawan/config.toml است، اما مسیر جستجو با دایرکتوری‌های پایه XDG نیز سازگار است:

1.
فایل پیکربندی مشخص‌شده با سوئیچ -C -> از آن استفاده می‌شود
2.
متغیر $CHA_DIR تنظیم شده باشد -> از $CHA_DIR/config.toml استفاده می‌شود
3.
مسیر ${XDG_CONFIG_HOME:-~/.config}/chawan/config.toml وجود داشته باشد -> از آن استفاده می‌شود
4.
مسیر ~/.chawan/config.toml وجود داشته باشد -> از آن استفاده می‌شود

برای جزئیات درباره نحوه دسترسی به دایرکتوری پیکربندی، بخش پردازش مسیرها (Path handling) را ببینید.

برای دریافت یک الگوی پیکربندی نمونه، فایل bonus/config.toml را در توزیع سورس‌کد برنامه مشاهده کنید.

گزینه‌های راه‌اندازی باید در بخش [start] قرار گیرند.

در ادامه فهرستی از گزینه‌های راه‌اندازی آمده است:

URL
صفحه‌ای که هنگام فراخوانی Chawan با گزینه -V و بدون ارسال هیچ صفحه دیگری به عنوان آرگومان، باز می‌شود.
کد JavaScript
اسکریپتی که Chawan هنگام راه‌اندازی اجرا می‌کند. تا زمانی که این تابع خارج نشود، صفحات بارگذاری نخواهند شد. (البته توجه داشته باشید که توابع ناهمگام مانند setTimeout مانع بارگذاری نمی‌شوند.)
boolean / “dump”
هنگامی که روی true یا “dump” تنظیم شود، مرورگر ورودی دریافت نمی‌کند؛ در عوض، نسخه‌ای رندرشده از تمام بافرها را به ترتیب چاپ کرده و سپس خارج می‌شود. تفاوت بین true و “dump” در این است که true ابتدا منتظر می‌ماند تا تمام اسکریپت‌ها و درخواست‌های شبکه تا انتها اجرا شوند، در حالی که “dump” منتظر نمی‌ماند. این بدان معناست که در صورت فعال بودن اسکریپت‌نویسی (مثلاً اگر اسکریپتی setInterval را تنظیم کند)، true ممکن است هرگز خارج نشود. ارسال خروجی cha از طریق لوله (pipe) به یک برنامه خارجی یا ارسال سوئیچ -d تأثیری مشابه تنظیم این گزینه روی “dump” دارد.
boolean
آیا Chawan باید در حالت غیر headless یک بافر کنسول باز کند یا خیر. هشدار: این گزینه فقط برای اشکال‌زدایی مفید است. غیرفعال کردن این گزینه بدون هدایت دستی خطای استاندارد (standard error)، منجر به ظاهر شدن تصادفی پیام‌های خطا روی صفحه نمایش شما می‌شود.

گزینه‌های بافر باید در بخش [buffer] قرار گیرند.

این گزینه‌ها برای تمام بافرها سراسری هستند. برای فیلتر کردن دقیق‌تر و تفکیک‌شده، از [[siteconf]] استفاده کنید.

مثال:

[buffer]
# نمایش تصاویر در تمام وب‌سایت‌ها
images = true
# غیرفعال‌سازی CSS وب‌سایت‌ها
styling = false
# مشخص کردن استایل‌های کاربر
user-style = '''
/* می‌توانید استایل‌های خارجی UA را این‌گونه وارد کنید: */
@import 'user.css';
/* یا استایل را به صورت درون‌خطی درج کنید. */
/* اعمال خط زیر پیوندها به صورت پیش‌فرض */
a[href] { text-decoration: revert !important }
@media (monochrome) { /* فقط در حالت رنگی "monochrome" (یا -M) */
	/* غیرفعال کردن قلم برجسته در استایل UA */
	a[href]:hover { font-weight: initial }
	/* ...و مورب کردن قلم هنگام نگه داشتن ماوس */
	a[href]:hover { font-style: italic !important }
}
'''
# می‌توانید scripting را روی true بگذارید، اما پیشنهاد می‌شود
# از [[siteconf]] برای فعال‌سازی به ازای هر سایت استفاده کنید.

در ادامه فهرستی از گزینه‌های بافر آمده است:

boolean
فعال/غیرفعال کردن شیوه‌نامه‌های نویسنده وب‌سایت (author style sheets). توجه داشته باشید که غیرفعال کردن این گزینه تأثیری بر استایل‌های کاربر ندارد.
boolean / “app”
فعال/غیرفعال کردن JavaScript در تمام بافرها. مقدار "app" همچنین رابط‌های برنامه‌نویسی JavaScript را فعال می‌کند که می‌توانند برای انگشت‌نگاری (fingerprinting) کاربران استفاده شوند (مانند بررسی اندازه پنجره). این ممکن است سازگاری بهتری با وب‌سایت‌هایی که مانند برنامه کاربردی رفتار می‌کنند ایجاد کند، به بهای کاهش حریم خصوصی. به دلایل امنیتی و کارایی، به کاربران توصیه می‌شود به جای این تنظیم، JavaScript را به صورت انتخابی با [[siteconf]] فعال کنند.
boolean
فعال/غیرفعال کردن نمایش درون‌خطی تصاویر.
boolean / “save”
فعال/غیرفعال کردن کوکی‌ها در سایت‌ها. اگر رشته “save” مشخص شود، کوکی‌ها در external.cookie-file نیز ذخیره می‌شوند. مقدار true همچنان cookies.txt را می‌خواند، اما آن را تغییر نمی‌دهد. در Chawan، هر وب‌سایت یک مخزن کوکی (cookie jar) جداگانه دریافت می‌کند، بنابراین وب‌سایت‌هایی که به کوکی‌های بین سایتی (cross-site) متکی هستند ممکن است طبق انتظار کار نکنند. می‌توانید از تنظیم "share-cookie-jar" در [[siteconf]] برای تنظیم این رفتار برای سایت‌های خاص استفاده کنید.
boolean
فعال/غیرفعال کردن هدر “Referer”. پیش‌فرض false است. به دلایل حفظ حریم خصوصی، به کاربران توصیه می‌شود این گزینه را غیرفعال بگذارند و آن را فقط برای سایت‌های خاص در [[siteconf]] فعال کنند.
boolean
هنگامی که روی true تنظیم شود، پس از بارگذاری بافر، فوکوس به طور خودکار روی عناصری با ویژگی “autofocus” قرار می‌گیرد. در صورت فعال بودن اسکریپت‌نویسی، این ویژگی به اسکریپت‌ها نیز اجازه می‌دهد روی عناصر فوکوس کنند.
“never” / “always” / “ask”
آیا تگ‌های متای http-equiv=refresh باید رعایت شوند یا خیر. مقدار “never” آن‌ها را کاملاً غیرفعال می‌کند، “always” همه آن‌ها را به صورت خودکار می‌پذیرد و “ask” یک منوی بازشو نمایش می‌دهد.
boolean
آیا تاریخچه مرور باید روی دیسک ذخیره شود یا خیر.
mark-links = false
boolean
افزودن نشانگرهای عددی قبل از پیوندها. در حالت headless/dump، این کار همچنین فهرستی از URLها را بعد از صفحه چاپ می‌کند.
CSS stylesheet
یک شیوه‌نامه کاربر که به تمام بافرها اعمال می‌شود. شیوه‌نامه‌های خارجی را می‌توان با استفاده از نحو @import 'file.css'; وارد کرد. مسیرها نسبت به دایرکتوری پیکربندی هستند. دستور @import تودرتو هنوز پشتیبانی نمی‌شود.

گزینه‌های جستجو باید در بخش [search] قرار گیرند.

در ادامه فهرستی از گزینه‌های جستجو آمده است:

boolean
آیا جستجوهای درون صفحه پس از رسیدن به انتهای سند باید به ابتدا برگردند (wrap) یا خیر.
“auto” / boolean
هنگامی که روی true تنظیم شود، جستجوها در سراسر سند به صورت پیش‌فرض حساس به بزرگی و کوچکی حروف نیستند (case-insensitive). هنگامی که روی “auto” تنظیم شود، جستجوها تنها زمانی به بزرگی و کوچکی حروف حساس می‌شوند که عبارت جستجو شامل یک حرف بزرگ باشد. نکته: این مورد را می‌توان در نوار جستجو (به سبک vim) با توالی‌های گریز \c (نادیده گرفتن بزرگی و کوچکی) و \C (حساسیت دقیق) لغو کرد. برای جزئیات، بخش حالت جستجو (Search mode) را ببینید.

گزینه‌های کدگذاری باید در بخش [encoding] قرار گیرند.

در ادامه فهرستی از گزینه‌های کدگذاری آمده است:

آرایه‌ای از رشته‌های برچسب مجموعه نویسه
فهرستی از مجموعه‌های نویسه (character sets) برای بارگذاری اسناد. تمام مجموعه‌های نویسه فهرست‌شده تا زمانی که سند بدون خطا رمزگشایی شود، پیمایش می‌شوند. در HTML، تگ‌های متا و BOM ممکن است این مقدار را با یک مجموعه نویسه دیگر بازنویسی کنند، به شرطی که مجموعه نویسه مشخص‌شده بتواند سند را به درستی رمزگشایی کند.
رشته برچسب مجموعه نویسه / “auto”
مجموعه نویسه برای ورودی صفحه‌کلید و نمایش اسناد. در حالت dump نیز استفاده می‌شود. (این بدان معناست که مثلاً cha -I EUC-JP -O UTF-8 a > b تقریباً معادل iconv -f EUC-JP -t UTF-8 است.)

گزینه‌های خارجی باید در بخش [external] قرار گیرند.

در ادامه فهرستی از گزینه‌های خارجی آمده است:

مسیر
دایرکتوری مورد استفاده برای ذخیره فایل‌های موقت.
دستور پوسته
دستور ویرایشگر خارجی. %s با نام فایل و %d با شماره خط جایگزین می‌شود.
آرایه‌ای از مسیرها
مسیر جستجو برای فایل‌های mailcap. برای جزئیات بیشتر به cha-mailcap(5) مراجعه کنید. دایرکتوری‌هایی که ابتدا مشخص شده‌اند اولویت بالاتری دارند.
آرایه‌ای از مسیرها
مسیر جستجو برای فایل‌های mime.types. برای جزئیات به cha-mime.types(5) مراجعه کنید.
مسیر
فایل mailcap برای مدخل‌هایی که به صورت خودکار اجرا می‌شوند. اعلان “Open as” نیز مدخل‌ها را در این فایل ذخیره می‌کند. برای سازگاری با گذشته، اگر این مقدار روی “mailcap” باشد و فایل وجود نداشته باشد، Chawan همچنین “auto.mailcap” را بررسی خواهد کرد.
آرایه‌ای از مسیرها
مسیر جستجو برای اسکریپت‌های CGI محلی. برای جزئیات به cha-cgi(5) مراجعه کنید.
آرایه‌ای از مسیرها
مسیر جستجو برای فایل‌های urimethodmap. برای جزئیات به cha-urimethodmap(5) مراجعه کنید.
boolean
فعال‌سازی سازگاری CGI محلی با w3m. به طور خلاصه، file:///cgi-bin/* و file:///$LIB/cgi-bin/* را به cgi-bin:* هدایت می‌کند. برای جزئیات به cha-cgi(5) مراجعه کنید.
مسیر
مسیری که به عنوان پیش‌فرض در اعلان‌های “Save to:” درج می‌شود.
boolean
آیا about:downloads باید پس از شروع بارگیری باز شود یا خیر.
دستور پوسته
دستور مورد استفاده برای عملیات “کپی در کلیپ‌بورد”. هنگامی که input.osc52-copy روی “auto” (پیش‌فرض) تنظیم شده باشد، در صورت شناسایی پشتیبانی از OSC 52، گزینه copy-cmd نادیده گرفته می‌شود.
دستور پوسته
دستور مورد استفاده برای عملیات “خواندن از کلیپ‌بورد”.
مسیر
مسیر فایل bookmark.md. (فایلی که به آن اشاره می‌شود باید پسوند .md داشته باشد تا نوع آن به درستی تشخیص داده شود.)
مسیر
مسیر فایل تاریخچه.
number
حداکثر طول فایل تاریخچه.
مسیر
مسیر فایل کوکی. قالب آن معادل قالب “cookies.txt” در curl است، به جز اینکه بخش “jar@” در ابتدای کوکی‌هایی که به مخزنی غیر از دامنه تعلق دارند، درج می‌شود. در صورتی که “buffer.cookie” (یا بازنویسی معادل آن در siteconf) روی true یا "save" تنظیم شده باشد، کوکی‌های این فایل استفاده می‌شوند. این بدان معناست که true فایل cookie-file را در حالت “فقط‌خواندنی” قرار می‌دهد.

گزینه‌های ورودی باید در بخش [input] قرار گیرند.

boolean
آیا پیشوندهای عددی به سبک vi برای دستورها پذیرفته شوند یا خیر. فقط برای کلیدهای میانبر تعریف‌شده در [page] اعمال می‌شود.
boolean / “auto”
آیا Chawan مجاز به دریافت کلیک‌های ماوس است یا خیر. پیاده‌سازی فعلی از w3m تقلید می‌کند. هنگامی که روی “auto” (پیش‌فرض) تنظیم شود، Chawan تلاش می‌کند در دسترس بودن پشتیبانی از ماوس را شناسایی کند.
boolean / “auto”
آیا Chawan باید از توالی گریز OSC 52 برای کپی مستقیم در کلیپ‌بورد از طریق ترمینال استفاده کند یا خیر. در صورت در دسترس بودن، OSC 52 بر external.copy-cmd اولویت دارد. هنگامی که روی “auto” (پیش‌فرض) تنظیم شود، Chawan تلاش می‌کند در زمان راه‌اندازی در دسترس بودن OSC 52 را شناسایی کند.
boolean / “auto”
آیا Chawan باید تلاش کند انتخاب اولیه (primary selection) را از طریق OSC 52 تنظیم کند یا خیر. این کار هنگام انتخاب با ماوس و همچنین در تمام کپی‌های کلیپ‌بورد به صورت خودکار انجام می‌شود. هنگامی که روی “auto” (پیش‌فرض) تنظیم شود، Chawan تلاش می‌کند قابلیت ترمینال در تنظیم انتخاب اولیه را شناسایی کند. توجه داشته باشید که ترمینال‌های بسیار کمی OSC 52 را به درستی پیاده‌سازی کرده‌اند (تا جایی که مشخص است، فقط XTerm و Kitty)، و در سایر ترمینال‌ها این کار حتی ممکن است کپی کردن در کلیپ‌بورد را با اختلال مواجه کند.
boolean / “auto”
آیا Chawan باید حالت bracketed paste را درخواست کند یا خیر. در صورت فعال بودن (true)، ترمینال متن چسبانده‌شده را با توالی‌های گریز علامت‌گذاری می‌کند، که این امر: الف) تضمین می‌کند که چسباندن نویسه خط جدید در ویرایشگر خط، ویرایشگر را ارسال (submit) نکند، ب) به Chawan اجازه می‌دهد متنی را که در صفحه‌بند چسبانده شده است رهگیری کرده و آن را به طور خودکار در نوار آدرس URL مرورگر بارگذاری کند. هنگامی که روی “auto” (پیش‌فرض) تنظیم شود، Chawan تلاش می‌کند تنها در صورتی bracketed paste را فعال کند که مشخص باشد ترمینال هنگام انجام این کار رفتار نامناسبی نشان نمی‌دهد.
number
تعداد خطوط برای پیمایش با چرخ ماوس.
number
تعداد ستون‌ها برای پیمایش با چرخ جانبی ماوس.
string
رشته‌ای از نویسه‌ها برای استفاده در toggleLinkHints. هر نقطه کد یونیکد (Unicode codepoint) پذیرفته می‌شود و ترتیب آن‌ها مطابق با این گزینه مشخص می‌شود.

مثال‌ها:

[input]
vi-numeric-prefix = true
[page]
# در اینجا، تابع پیکانی در صورت ورود پیشوند عددی vi با آن مقدار،
# و در غیر این صورت بدون آرگومان فراخوانی می‌شود.
# پیشوند عددی هرگز نمی‌تواند صفر باشد، بنابراین بررسی تعریف‌نشده بودن با عملگر سه‌تایی ایمن است.
G = 'n => n ? pager.gotoLine(n) : pager.cursorLastLine()'

گزینه‌های شبکه باید در بخش [network] قرار گیرند.

number
حداکثر تعداد تغییر مسیرها (redirections) برای دنبال کردن.
number
حداکثر تعداد اتصالات شبکه همزمان مجاز در یک بافر. اتصالات اضافی تا زمانی که تعداد به زیر آستانه برگردد، معلق نگه داشته می‌شوند.
string
پیشوند افزوده‌شده به URLهایی که بدون پیشوند طرح پروتکل (scheme) به Chawan ارسال می‌شوند (یا در نوار URL تایپ می‌شوند). توجه داشته باشید که فایل‌های محلی (پروتکل file:) همیشه ابتدا بررسی می‌شوند؛ تنها در صورت عدم موفقیت، Chawan درخواست را با پروتکل تنظیم‌شده در prepend-scheme دوباره امتحان می‌کند.
URL
مشخص کردن یک پروکسی برای تمام درخواست‌های شبکه‌ای که Chawan ارسال می‌کند. در حال حاضر، قالب‌های http://user:pass@domain و socks5://user:pass@domain پذیرفته می‌شوند. برخلاف curl، مقدار socks5h نام مستعاری برای socks5 است و درخواست‌های DNS همیشه تونل می‌شوند. می‌تواند توسط siteconf لغو شود.
table
مشخص کردن یک جدول از هدرهای پیش‌فرض برای تمام درخواست‌های شبکه HTTP(S). می‌تواند توسط siteconf لغو شود.
boolean
هشدار: قبل از فعال کردن این گزینه به عواقب آن فکر کنید. اجازه ارسال درخواست‌های HTTP و HTTPS را از طرح‌های پروتکل file: و stream: می‌دهد. این به طور کلی ایده نامناسبی است، زیرا به فایل‌های محلی اجازه می‌دهد سرورهای راه دور را پینگ کنند (قابلیتی که معمولاً توسط ایمیل‌های HTML برای ردیابی فعالیت صندوق پستی شما سوءاستفاده می‌شود). از سوی دیگر، اگر پیامدهای حریم خصوصی برایتان اهمیتی ندارد، به بارگذاری تصاویر در ایمیل‌های HTML کمک می‌کند.

گزینه‌های نمایش باید در بخش [display] قرار گیرند.

در ادامه فهرستی از گزینه‌های نمایش آمده است:

“monochrome” / “ansi” / “eight-bit” / “true-color” / “auto”
تنظیم حالت رنگ. مقدار “auto” برای تشخیص خودکار، “monochrome” برای تک‌رنگ سیاه و سفید، “ansi” برای هشت رنگ ANSI به علاوه هشت رنگ aixterm، مقدار “eight-bit” برای حالت ۲۵۶ رنگ و “true-color” برای رنگ‌های ۲۴ بیتی.
“auto” / [“bold”, “italic”, “underline”, “reverse”, “strike”, “overline”, “blink”]
حالت‌های قالب‌بندی خروجی مجاز را مشخص می‌کند. رشته “auto” یا آرایه‌ای از ویژگی‌های خاص را می‌پذیرد. مقدار “auto” (پیش‌فرض) سعی می‌کند حالت‌های قالب‌بندی پشتیبانی‌شده را هنگام راه‌اندازی بصری تشخیص دهد، و تمام حالت‌های قالب‌بندی را در حالت dump نادیده می‌گیرد. یک آرایه خالی ([]) قالب‌بندی را حتی در حالت بصری غیرفعال می‌کند.
[“bold”, “italic”, “underline”, “reverse”, “strike”, “overline”, “blink”]
غیرفعال کردن حالت‌های قالب‌بندی خاص.
“auto” / “none” / “sixel” / “kitty”
حالت خروجی تصویر را مشخص می‌کند. مقدار “sixel” از sixel برای خروجی استفاده می‌کند، “kitty” از پروتکل نمایش تصویر Kitty استفاده می‌کند و “none” نمایش تصویر را کاملاً غیرفعال می‌کند. مقدار “auto” (پیش‌فرض) پشتیبانی از sixel یا kitty را به طور خودکار تشخیص می‌دهد و در صورت در دسترس نبودن هیچ‌کدام، به “none” بازمی‌گردد. انتظار می‌رود این گزینه در تمام ترمینال‌های شناخته‌شده با پشتیبانی کاربردی از تصویر کار کند. توجه داشته باشید که برای بارگذاری تصاویر، گزینه buffer.images باید فعال باشد.
“auto” / 2..65535
فقط زمانی اعمال می‌شود که display.image-mode="sixel" باشد. تنظیم این گزینه روی یک عدد، تعداد ثبات‌های رنگ sixel گزارش‌شده توسط ترمینال را لغو می‌کند.
“auto” / boolean
فعال/غیرفعال کردن صفحه جایگزین (alternative screen). مقدار “auto” (پیش‌فرض) سعی می‌کند پشتیبانی از این ویژگی را تشخیص دهد. (با این حال، از آنجا که Chawan به terminfo متصل نیست، نباید انتظار داشته باشید ترفندهایی که توضیحات مربوطه را از terminfo حذف می‌کنند کار کنند.)
CSS color
تنظیم رنگ برجسته‌سازی برای جستجوی افزایشی و نشانه‌ها. نام رنگ‌های CSS، مقادیر هگزادسیمال و توابع رنگ همگی پذیرفته می‌شوند. در حالت تک‌رنگ (monochrome)، این تنظیم نادیده گرفته می‌شود؛ در عوض، از ویدیوی معکوس (reverse video) استفاده می‌شود.
boolean
فعال/غیرفعال کردن برجسته‌سازی نشانه‌ها.
boolean
فرض می‌کند ترمینال نویسه‌ها را در دسته مبهم شرق آسیا (East Asian Ambiguous) به عنوان نویسه‌هایی با عرض دوبرابر نمایش می‌دهد. زمانی مفید است که برای مثال ○ دو سلول را اشغال کند.
0..235
حداقل تفاوت بین درخشندگی (Y) پس‌زمینه پیش‌فرض ترمینال و پیش‌زمینه را همان‌طور که در YUV نمایش داده می‌شود مشخص می‌کند. مقدار 0 این تابع را غیرفعال می‌کند (یعنی اجازه می‌دهد حروف سیاه روی پس‌زمینه سیاه و غیره نمایش داده شوند). نکته: در گذشته، این گزینه برای همه رنگ‌ها اعمال می‌شد، اما از نسخه v0.3 چاوان تصحیح کنتراست رنگ را فقط زمانی انجام می‌دهد که رنگ پیش‌زمینه یا پس‌زمینه پیش‌فرض ترمینال باشد. همچنین الگوریتم تصحیح کنتراست هنوز بی‌نقص نیست، بنابراین اعمال تغییرات در نسخه‌های آینده محتمل است.
boolean
تنظیم عنوان پنجره شبیه‌ساز ترمینال بر اساس عنوان صفحه فعلی.
“auto” / RGB color
رنگ پس‌زمینه فرضی ترمینال را لغو می‌کند. مقدار “auto” تشخیص رنگ پس‌زمینه را به Chawan واگذار می‌کند.
“auto” / RGB color
رنگ پیش‌زمینه فرضی ترمینال را تنظیم می‌کند. مقدار “auto” تشخیص رنگ پیش‌زمینه را به Chawan واگذار می‌کند.
number
مقادیر جایگزین (fallback) برای تعداد ستون‌ها، خطوط، پیکسل در هر ستون و پیکسل در هر خط برای مواردی که نمی‌توان آن‌ها را به طور خودکار تعیین کرد. (برای مثال، این مقادیر در حالت dump استفاده می‌شوند.)
boolean
تنظیم اجباری ستون‌ها، خطوط، پیکسل در هر ستون یا پیکسل در هر خط بر روی مقادیر جایگزین ارائه‌شده در بالا.

گزینه‌های مربوط به نوار وضعیت (آخرین خط روی صفحه) باید در بخش [status] قرار گیرند.

در ادامه فهرستی از گزینه‌های نوار وضعیت آمده است:

boolean
آیا شماره خط فعلی باید نمایش داده شود یا خیر.
boolean
آیا پیوند زیر مکان‌نما باید نمایش داده شود یا خیر.
{بخش [display] را ببینید}
قالب‌بندی نوار وضعیت.

نوار جامع یا omni-bar (که به طور پیش‌فرض با C-l باز می‌شود) می‌تواند برای انجام جستجوها با استفاده از omni-rules استفاده شود. این موارد باید به عنوان زیرکلیدهایی در جدول [omnirule] مشخص شوند. (خود زیرکلید نادیده گرفته می‌شود؛ تا زمانی که با کلیدهای دیگر تداخل نداشته باشد، می‌توانید از هر نامی استفاده کنید.)

مثال‌ها:

# جستجو با استفاده از DuckDuckGo Lite.
# (این قانون در پیکربندی پیش‌فرض گنجانده شده است، اگرچه C-k جستجوی Brave را فراخوانی می‌کند.)
[omnirule.ddg]
match = '^ddg:'
substitute-url = '(x) => "https://lite.duckduckgo.com/lite/?kp=-1&kd=-1&q=" + encodeURIComponent(x.split(":").slice(1).join(":"))'
# برای استفاده از قانون فوق، نوار URL را با C-k باز کنید، آن را با C-u پاک کرده و ddg:keyword را تایپ کنید.
# همچنین می‌توانید C-k را این‌گونه بازتعریف کنید:
[page]
'C-k' = '() => pager.load("ddg:")'
# جستجو در ویکی‌پدیا، به سبک فایرفاکس.
# ساختار [[omnirule]] یک قانون omnirule بی‌نام تعریف می‌کند؛ این ساختار معادل حالت نام‌گذاری‌شده است.
[[omnirule]]
match = '^@wikipedia'
substitute-url = '(x) => "https://en.wikipedia.org/wiki/Special:Search?search=" + encodeURIComponent(x.replace(/@wikipedia/, ""))'

همان‌طور که در بالا ذکر شد، پیکربندی پیش‌فرض شامل برخی قوانین توکار است که بر اساس ترجیح نگهدارنده و این معیار حداقلی که باید بدون کوکی و JavaScript کار کنند، انتخاب شده‌اند. در حال حاضر، این موارد عبارتند از:

  • ddg: - DuckDuckGo Lite.
  • br: - جستجوی Brave.
  • wk: - ویکی‌پدیای انگلیسی.
  • wd: - ویکی‌واژه انگلیسی (English Wiktionary).
  • mo: - Mojeek.

گزینه‌های Omnirule:

regex
عبارت باقاعده مورد استفاده برای تطبیق رشته ورودی. توجه داشته باشید که وب‌سایت‌های ارسال‌شده به عنوان آرگومان نیز تطبیق داده می‌شوند. نکته: عبارات باقاعده بر اساس قوانین پردازش regex در حالت تطبیق (match mode) بررسی می‌شوند.
تابع JavaScript
یک تابع JavaScript که Chawan رشته ورودی را به آن ارسال می‌کند. اگر یک رشته جدید بازگردانده شود، آن رشته به جای رشته قبلی پردازش خواهد شد.

گزینه‌های پیکربندی را می‌توان برای سایت‌های مجزا مشخص کرد. مدخل‌ها باید به عنوان زیرکلیدهایی در جدول [siteconf] مشخص شوند. (خود زیرکلید نادیده گرفته می‌شود؛ تا زمانی که با کلیدهای دیگر تداخل نداشته باشد، می‌توانید از هر نامی استفاده کنید.)

بیشتر گزینه‌های siteconf را می‌توان به صورت سراسری نیز مشخص کرد؛ فیلد “overrides” را ببینید.

مثال‌ها:

# فعال‌سازی کوکی‌ها در وب‌سایت نارنجی (Hacker News) برای ورود به حساب.
[siteconf.hn]
url = 'https://news\.ycombinator\.com/.*'
cookie = true
# تغییر مسیر npr.org به text.npr.org.
[siteconf.npr]
host = '(www\.)?npr\.org'
rewrite-url = '''
(x) => {
	x.host = "text.npr.org";
	const s = x.pathname.split('/');
	x.pathname = s.at(s.length > 2 ? -2 : 1);
	/* نیازی به بازگرداندن مقدار نیست؛ اشیاء URL با ارجاع ارسال می‌شوند. */
}
'''
# مجاز کردن اشتراک‌گذاری کوکی در دامنه‌های *sr.ht.
[siteconf.sr-ht]
host = '(.*\.)?sr\.ht' # هم 'something.sr.ht' و هم 'sr.ht'
cookie = true # فعال‌سازی کوکی‌ها (فقط‌خواندنی؛ از "save" برای ذخیره دائم استفاده کنید)
share-cookie-jar = 'sr.ht' # استفاده از مخزن کوکی 'sr.ht' برای تمام میزبان‌های منطبق
# استفاده از پوسته "vector" در ویکی‌پدیا.
# ساختار [[siteconf]] یک siteconf بی‌نام تعریف می‌کند؛ این معادل موارد بالا است.
[[siteconf]]
url = '^https?://[a-z]+\.wikipedia\.org/wiki/(?!.*useskin=.*)'
rewrite-url = 'x => x.searchParams.append("useskin", "vector")'
# وادار کردن imgur به ارسال تصاویر.
[siteconf.imgur]
host = '(i\.)?imgur\.com'
default-headers = {
	User-Agent = "Mozilla/5.0 chawan",
	Accept = "*/*",
	Accept-Encoding = "gzip, deflate",
	Accept-Language = "en;q=1.0",
	Pragma = "no-cache",
	Cache-Control = "no-cache"
}

گزینه‌های Siteconf:

regex
عبارت باقاعده مورد استفاده برای تطبیق URL. یا این گزینه یا گزینه host باید مشخص شود. نکته: عبارات باقاعده بر اساس قوانین پردازش regex در حالت تطبیق (match mode) مدیریت می‌شوند.
regex
عبارت باقاعده مورد استفاده برای تطبیق بخش میزبان URL (یعنی نام دامنه/آدرس IP). یا این گزینه یا گزینه url (نه هر دو) باید مشخص شود. نکته: عبارات باقاعده بر اساس قوانین پردازش regex در حالت تطبیق (match mode) مدیریت می‌شوند.
تابع JavaScript
یک تابع JavaScript که Chawan شیء URL سایت را به آن ارسال می‌کند. اگر یک URL جدید بازگردانده شود یا شیء URL به هر نحوی تغییر یابد، Chawan کاربر را به صورت شفاف به این URL جدید هدایت می‌کند.
boolean / “save”
آیا بارگذاری (و با “save”، ذخیره‌سازی) کوکی‌ها برای این URL باید مجاز باشد یا خیر.
رشته میزبان (host)
مخزن کوکی برای استفاده در این دامنه. برای مثال، برای به اشتراک‌گذاری کوکی‌ها با زیردامنه‌ها مفید است.
boolean
آیا Chawan هنگام باز کردن درخواست‌هایی که از این دامنه سرچشمه می‌گیرند، باید هدر Referer ارسال کند یا خیر. مثال ساده‌شده: اگر روی پیوندی در a.com کلیک کنید که به b.com اشاره دارد و referer-from برابر true باشد، برای b.com هدر Referer با مقدار “a.com” ارسال می‌شود.
boolean / “app”
فعال/غیرفعال کردن اجرای JavaScript در این سایت. برای جزئیات buffer.scripting را ببینید.
boolean
فعال/غیرفعال کردن استایل‌های نویسنده (CSS) در این سایت.
boolean
فعال/غیرفعال کردن بارگذاری تصاویر در این سایت.
رشته برچسب مجموعه نویسه
مشخص کردن کدگذاری پیش‌فرض برای این سایت.
رشته URL
مشخص کردن پروکسی برای درخواست‌های شبکه‌ای که محتوای این بافر را دریافت می‌کنند.
table
مشخص کردن فهرستی از هدرهای پیش‌فرض برای درخواست‌های شبکه HTTP(S) به این بافر.
boolean
هنگامی که روی true تنظیم شود، اعتبارسنجی همتا (peer) و نام میزبان را برای کلیدهای SSL در این سایت غیرفعال می‌کند، دقیقاً مانند کاری که curl --insecure انجام می‌دهد. لطفاً از این گزینه استفاده نکنید مگر اینکه کاملاً مطمئن باشید چه کاری انجام می‌دهید.
boolean
هنگامی که روی true تنظیم شود، پس از بارگذاری بافر، فوکوس به طور خودکار روی عناصری با ویژگی “autofocus” قرار می‌گیرد. در صورت فعال بودن اسکریپت‌نویسی، این ویژگی به اسکریپت‌ها نیز اجازه می‌دهد روی عناصر فوکوس کنند.
“never” / “always” / “ask”
آیا تگ‌ها و هدرهای متای http-equiv=refresh باید رعایت شوند یا خیر. مقدار “never” آن‌ها را کاملاً غیرفعال می‌کند، “always” همه آن‌ها را به صورت خودکار می‌پذیرد و “ask” یک منوی بازشو نمایش می‌دهد.
boolean
آیا تاریخچه مرور برای این URL باید روی دیسک ذخیره شود یا خیر.
mark-links = buffer.mark-links
boolean
افزودن نشانگرهای عددی قبل از پیوندها.
string
مشخص کردن یک شیوه‌نامه کاربری خاص برای این سایت. برای جزئیات به buffer.user-style مراجعه کنید.

کلیدهای میانبر باید در این بخش‌ها قرار گیرند:

  • برای تعامل با صفحه‌بند (pager): [page]
  • برای ویرایش خط: [line]

کلیدهای میانبر با استفاده از نحو زیر پیکربندی می‌شوند:

'<keybinding>' = '<action>'

که در آن <keybinding> ترکیبی از نویسه‌های یونیکد با استفاده از نحو شرح داده شده در زیر است.

عبارت <action> یا دستوری است که در بخش [cmd] تعریف شده است، یا یک عبارت JavaScript است. این سند تنها عملیات‌های از پیش تعریف‌شده در پیکربندی پیش‌فرض را شرح می‌دهد؛ برای شرح API، به cha-api(7) مراجعه کنید.

مثال‌ها:

# نمایش تغییر URL هنگام فشردن Control، Escape و j
'C-M-j' = 'load'
# رفتن به اولین خط صفحه با دو بار فشردن g بدون پیشوند عددی،
# یا رفتن به خط مربوطه در صورت وارد کردن عدد پیشوند.
'g g' = 'gotoLineOrStart'
# توابع و عبارات JS نیز پذیرفته می‌شوند. کد زیر موتور جستجوی پیش‌فرض
# را با DuckDuckGo Lite جایگزین می‌کند.
# (برای مشاهده فهرست توابع موجود به api.md مراجعه کنید.)
'C-k' = '() => pager.load("ddg:")'

یک کلید میانبر فهرستی از کلیدها است که با فاصله جدا شده‌اند و به صورت اختیاری با اصلاح‌کننده‌های S- (shift)، C- (control) یا M- (meta) پیشوندگذاری می‌شوند.

به طور کلی، کلیدهای ASCII/Unicode را می‌توان همان‌طور که هستند نوشت. استثنا کلید فاصله است که به صورت SPC نوشته می‌شود.

سایر کلیدهای نام‌گذاری‌شده پشتیبانی‌شده عبارتند از: TAB، ESC، RET (کلید return)، LF (کلید enter/line feed)، Left، Up، Down، Right (کلیدهای جهت‌نما)، PageUp، PageDown (صفحه بالا/پایین)، Home، End و کلیدهای تابع F1 تا F20.

برای سازگاری با گذشته، فاصله‌ها را می‌توان از توالی کلیدهایی که با یک حرف بزرگ شروع نمی‌شوند حذف کرد. به عنوان مثال، 'gg' و 'g g' معادل هستند. با این حال، مؤلفه‌هایی که با یک حرف بزرگ شروع می‌شوند (مانند 'Gg') برای نام‌های کلید رزرو شده‌اند، بنابراین برای جلوگیری از تجزیه مبهم، باید با فاصله جدا شوند (مانند 'G g').

همچنین برای سازگاری با گذشته، فاصله‌های ابتدا/انتهای کلید میانبر به SPC ترجمه می‌شوند.

کلیدهای میانبر پیش‌فرض به صورت برجسته (bold) نمایش داده شده‌اند.

q
خروج از مرورگر.
C-z
تعلیق موقت مرورگر. نکته: این کار فرایندهای بافر یا اسکریپت‌های CGI را نیز به حالت تعلیق درمی‌آورد؛ بنابراین اگر در حال بارگیری فایلی باشید، تا زمان از سرگیری فرایند به تعویق خواهد افتاد.
C-l
باز کردن آدرس فعلی در نوار URL.
M-l
باز کردن آدرس پیوند یا تصویری که نشانگر روی آن قرار دارد در نوار URL. اگر پیوند/تصویری زیر نشانگر نباشد، نوار URL خالی باز می‌شود.
باز کردن یک نوار آدرس خالی.
C-k
باز کردن نوار URL با یک موتور جستجوی دلخواه. در حال حاضر این موتور جستجوی Brave است، اما ممکن است در آینده تغییر کند.
M-u
تکثیر بافر فعلی. این یک کپی سطحی (shallow clone) است، بنابراین تغییرات در یک بافر روی دیگری تأثیر می‌گذارد.
U
باز کردن بافر جدید با URL بافر فعلی و جایگزینی آن با بافر فعلی.
C-g
نمایش اطلاعات مربوط به خط فعلی در خط وضعیت.
\
در صورت مشاهده بافر HTML، بافر جدیدی حاوی سورس‌کد آن باز می‌کند. در غیر این صورت، محتوای بافر فعلی را به عنوان HTML باز می‌کند.
s s
ذخیره بافر رندرشده در یک فایل.
s S
ذخیره سورس‌کد بافر در یک فایل.
s e
باز کردن بافر رندرشده در یک ویرایشگر متنی.
s E
باز کردن سورس‌کد بافر در یک ویرایشگر متنی.
D
بستن و دور انداختن بافر فعلی و بازگشت به بافر قبلی/بعدی بر اساس بافری که قبلاً مشاهده شده است.
d ,, d .
دور انداختن بافر فعلی و انتقال به بافر قبلی/بعدی، یا باز کردن پیوند زیر مکان‌نما.
M-d
دور انداختن تمام بافرهای فرزندِ بافر فعلی.
., ,
رفتن به ترتیب به بافر بعدی یا قبلی.
M-c
ورود مستقیم یک دستور JavaScript. توجه داشته باشید که این دستور با صفحه‌بند تعامل دارد، نه با وب‌سایت نمایش‌داده‌شده.
جستجوی یک رشته در بافر فعلی، به سمت جلو یا عقب.
/, ?
جستجوی افزایشی برای یک رشته با برجسته‌سازی اولین نتیجه، به سمت جلو یا عقب.
n, N
پرش به n-امین (یا در صورت عدم تعیین، اولین) نتیجه جستجوی بعدی/قبلی.
نمایش پیامی حاوی URL بافر فعلی در خط وضعیت.
u
نمایش پیامی حاوی URL یا عنوان زیر مکان‌نما در خط وضعیت. فراخوانی‌های مکرر امکان جابجایی بین این دو را فراهم می‌کند (یعنی به طور پیش‌فرض، یک بار فشردن u -> عنوان، فشردن مجدد -> URL).
s u
نمایش آخرین هشدار در داخل ویرایشگر خط. همچنین می‌توانید هشدارهای قبلی را با استفاده از C-p یا C-n مشاهده کنید.
M-y
کپی کردن URL بافر فعلی در کلیپ‌بورد سیستم.
y u
کپی کردن پیوند زیر مکان‌نما در کلیپ‌بورد سیستم.
y I
کپی کردن URL تصویر زیر مکان‌نما در کلیپ‌بورد سیستم.
M-p
رفتن به آدرس URL موجود در کلیپ‌بورد.
M-b
باز کردن فایل نشانک‌ها (bookmarks).
M-a
افزودن صفحه فعلی به نشانک‌ها.
f
نمایش راهنماها (hints) قبل از هر پیوند (یا دکمه). پس از تایپ یک راهنما، مکان‌نما روی پیوند مربوطه قرار می‌گیرد. مجموعه نویسه‌های راهنما را می‌توان با input.link-hint-chars سفارشی‌سازی کرد.
مشابه toggleLinkHints، با این تفاوت که روی پیوند انتخاب‌شده نیز کلیک می‌کند.

عبارت n به عددی اشاره دارد که پیش از عملیات وارد می‌شود. برای مثال در 10gg مقدار n برابر ۱۰ است. اگر هیچ عددی وارد نشود، نامشخص در نظر گرفته می‌شود.

کلیدهای میانبر پیش‌فرض به صورت برجسته (bold) نمایش داده شده‌اند.

j/C-p/Up, k/C-n/Down
حرکت مکان‌نما به بالا/پایین به اندازه n خط، یا در صورت نامشخص بودن n، به اندازه ۱ خط.
h/Left, l/Right
حرکت مکان‌نما به چپ/راست به اندازه n سلول، یا در صورت نامشخص بودن n، به اندازه ۱ سلول.
0/Home
حرکت مکان‌نما به اولین سلول خط.
^
حرکت مکان‌نما به اولین نویسه غیرفاصله‌ای خط.
$/End
حرکت مکان‌نما به آخرین سلول خط.
w, W
حرکت مکان‌نما به ابتدای n-امین کلمه بعدی.
حرکت مکان‌نما به انتهای n-امین کلمه قبلی.
e, E
حرکت مکان‌نما به انتهای کلمه فعلی، یا در صورت قرار داشتن در انتهای کلمه، به انتهای n-امین کلمه بعدی.
b, B
حرکت مکان‌نما به ابتدای کلمه فعلی، یا در صورت قرار داشتن در ابتدای کلمه، به انتهای n-امین کلمه قبلی.
[, ]
حرکت مکان‌نما به انتهای/ابتدای عنصر قابل کلیک قبلی/بعدی (مانند پیوند، فیلد ورودی و غیره).
{, }
حرکت مکان‌نما به انتهای/ابتدای n-امین بند (paragraph) قبلی/بعدی.
حرکت مکان‌نما به n-امین پیوند سند، با شمارش معکوس از آخرین خط سند.
حرکت مکان‌نما به n-امین پیوند سند.
C-b/PageUp, C-f/PageDown, z H, z L
پیمایش به بالا/پایین/چپ/راست به اندازه n صفحه، یا در صورت نامشخص بودن n، به اندازه یک صفحه.
C-u, C-d
پیمایش به بالا/پایین/چپ/راست به اندازه n نیم‌صفحه، یا در صورت نامشخص بودن n، به اندازه یک صفحه.
K/C-y, J/C-e, z h, z l
پیمایش به بالا/پایین/چپ/راست به اندازه n خط، یا در صورت نامشخص بودن n، به اندازه یک خط.
RET/LF
کلیک روی عنصر HTML فعلی زیر مکان‌نما. مقدار n تعداد کلیک‌ها را در رویدادهای JS مشخص می‌کند.
c
ارسال کلیک راست به بافر. اگر رویداد دریافت نشود (یعنی هیچ منوی زمینه‌ای JS نشان داده نشود)، در عوض منو را باز و بسته (toggle) می‌کند.
C
باز و بسته کردن منو.
I
مشاهده تصویر زیر مکان‌نما در یک نمایش‌دهنده خارجی.
R
تغییر شکل و رندر مجدد بافر فعلی. زمانی مفید است که چیدمان صفحه با وجود لزوم به‌روزرسانی، تغییر نکرده باشد.
r
بازترسیم محتویات صفحه. زمانی مفید است که نمایشگر دچار به‌هم‌ریختگی بصری شده باشد.
حرکت به ابتدا/انتهای بافر.
H, M, L
حرکت به اولین خط / خط میانی / آخرین خط روی صفحه. (معادل H، M، L در vi.)
z t, z RET, z z, z ., z b, z -
اگر n مشخص شده باشد، مکان‌نما به خط n منتقل می‌شود. سپس:
  • دستور raisePage به سمت پایین پیمایش می‌کند تا مکان‌نما در بالاترین خط صفحه قرار گیرد. (در vi دستور z RET، در vim دستور z t.)
  • دستور centerLine صفحه را جابجا می‌کند تا مکان‌نما در وسط صفحه قرار گیرد. (در vi دستور z .، در vim دستور z z.)
  • دستور lowerPage به سمت بالا پیمایش می‌کند تا مکان‌نما در پایین‌ترین خط صفحه قرار گیرد. (در vi دستور z -، در vim دستور z b.) حالت‌های دارای پسوند -Begin همچنین مکان‌نما را مانند کلیدهای اصلی در vi به اولین نویسه غیرفاصله‌ای خط منتقل می‌کنند.
z +
اگر n مشخص شده باشد، به صفحه قبل از خط n-ام رفته و صفحه را بالا می‌برد. در غیر این صورت، به اولین خط صفحه بعدی رفته و صفحه را بالا می‌برد.
z ^
اگر n مشخص شده باشد، به صفحه قبل از خط n-ام رفته و صفحه را پایین می‌آورد. در غیر این صورت، به آخرین خط صفحه قبلی رفته و صفحه را پایین می‌آورد.
g 0, g c, g $
حرکت به اولین/میانی/آخرین ستون روی صفحه.
وسط‌چین کردن صفحه حول ستون فعلی. (در w3m کلید Z.)
g g, G
اگر n مشخص شده باشد، به خط n می‌پرد. در غیر این صورت، به خط اول/آخر بافر می‌پرد.
|
اگر n مشخص شده باشد، به ستون n در خط فعلی می‌پرد. در غیر این صورت، به ستون اول/آخر می‌پرد.
m
منتظر دریافت نویسه x می‌ماند و سپس نشانه‌ای با شناسه x تنظیم می‌کند.
`, ’
منتظر یک نویسه x می‌ماند و سپس به نشانه با شناسه x (در صورت وجود در صفحه) می‌پرد. دستور gotoMark هر دو موقعیت افقی (X) و عمودی (Y) را تنظیم می‌کند؛ دستور gotoMarkY فقط موقعیت Y را تنظیم می‌کند.
:
تبدیل رشته‌های شبیه به URL به پیوند در صفحه فعلی.
s RET
ذخیره منبع منتهی به URL اشاره‌شده توسط مکان‌نما روی دیسک.
s S
ذخیره سورس‌کد بافر فعلی روی دیسک.
s I
ذخیره تصویر فعلی زیر مکان‌نما.
M-i
تغییر وضعیت نمایش تصاویر در بافر فعلی.
M-j
بارگذاری مجدد بافر فعلی با فعال/غیرفعال کردن اسکریپت‌نویسی.
M-k
بارگذاری مجدد بافر فعلی با فعال/غیرفعال کردن کوکی‌ها.
C-a, *
جستجوی کلمه فعلی زیر مکان‌نما به سمت جلو.
#
جستجوی کلمه فعلی زیر مکان‌نما به سمت عقب.

RET, LF
ارسال متن واردشده فعلی.
C-g
بستن ویرایشگر و لغو عملیاتی که ویرایشگر برای آن باز شده بود.
C-c
در صورت وجود متن انتخاب‌شده، آن را کپی می‌کند. در غیر این صورت، مانند line.cancel عمل می‌کند.
C-h, C-d
حذف نویسه قبل (backspace) یا بعد (delete) از مکان‌نما.
C-u/C-x C-?, C-k
حذف متن قبل (clear) یا بعد (kill) از مکان‌نما.
C-x C-e
باز کردن محتویات ویرایشگر خط در $EDITOR.
C-w, M-d
حذف کلمه قبل (clear) یا بعد (kill) از مکان‌نما.
C-b, C-f
حرکت مکان‌نما به اندازه یک نویسه به عقب/جلو.
M-b, M-f
حرکت مکان‌نما به کلمه قبلی/بعدی.
C-a/Home, C-e/End
حرکت مکان‌نما به ابتدا/انتهای خط.
C-v
نادیده گرفتن کلیدهای میانبر برای نویسه بعدی.
C-p, C-n
پرش به مدخل قبلی/بعدی در تاریخچه.

نکته: برای تسهیل ویرایش URL، ویرایشگر خط تعریف متفاوتی از کلمه نسبت به صفحه‌بند دارد. برای ویرایشگر خط، یک کلمه یا دنباله‌ای از نویسه‌های حرفی‌عددی است یا هر تک‌نویسه غیر حرفی‌عددی. (این بدان معناست که برای مثال https:// از چهار کلمه تشکیل شده است: https، :، / و /.)

# کلید Control+A مکان‌نما را به ابتدای خط منتقل می‌کند.
'C-a' = 'line.begin'
# کلید Escape+D تمام محتوای بعد از مکان‌نما را تا رسیدن به نویسه فاصله‌انداز حذف می‌کند.
'M-d' = 'line.killWord'

عبارات باقاعده در حال حاضر با استفاده از کتابخانه libregexp از QuickJS پردازش می‌شوند. این بدان معناست که تمام عبارات باقاعده مانند JavaScript کار می‌کنند.

دو حالت مختلف برای پیش‌پردازش عبارات باقاعده در Chawan وجود دارد: حالت “جستجو” (search) و حالت “تطبیق” (match). حالت تطبیق برای پیکربندی‌ها استفاده می‌شود (یعنی در تمام مقادیری که در این سند به عنوان “regex” توصیف شده‌اند). حالت جستجو برای قابلیت جستجوی درون صفحه استفاده می‌شود (با استفاده از searchForward/isearchForward و غیره).

عبارات باقاعده به عنوان تطبیق دقیق در نظر گرفته می‌شوند، مگر اینکه با علامت توان (^) شروع شوند یا با علامت دلار بدون گریز ($) پایان یابند.

به عبارت دیگر، تبدیلات زیر رخ می‌دهد:

^abcd -> ^abcd (بدون تغییر، فقط ابتدا تطبیق داده می‌شود)
efgh$ -> efgh$ (بدون تغییر، فقط انتها تطبیق داده می‌شود)
^ijkl$ -> ^ijkl$ (بدون تغییر، کل خط تطبیق داده می‌شود)
mnop -> ^mnop$ (تغییر به تطبیق دقیق، کل خط تطبیق داده می‌شود)

حالت match mode راهی برای فعال/غیرفعال کردن پرچم‌های regex جاوااسکریپت مانند i ندارد.

برای جستجوی درون صفحه، تبدیلات فوق اعمال نمی‌شوند؛ جستجوی /abcd به دنبال رشته abcd درون تمام خطوط می‌گردد.

حالت جستجو همچنین دارای برخی تبدیلات تسهیل‌کننده دیگر است (این موارد در حالت match mode کار نمی‌کنند):

  • رشته \c (بک‌اسلش + حرف c کوچک) درون regex حالت جستجو، تطبیق غیرحساس به بزرگی و کوچکی حروف را فعال می‌کند.
  • برعکس، \C (بک‌اسلش + حرف C بزرگ) تطبیق غیرحساس به بزرگی و کوچکی حروف را غیرفعال می‌کند. (زمانی مفید است که گزینه ignore-case را روی true تنظیم کرده باشید که حالت پیش‌فرض است.)
  • توالی‌های \< و \> به \b تبدیل می‌شوند (مانند vi، grep و غیره).

مانند حالت تطبیق، حالت جستجو روی تک‌تک خطوط عمل می‌کند. این بدان معناست که الگوهای جستجو با متنی که در چندین خط شکسته شده است (wrapped) تطبیق داده نمی‌شوند.

قوانین پردازش مسیر مشابه نحوه برخورد پوسته با رشته‌ها است.

  • از بسط مدک (tilde-expansion) برای تعیین دایرکتوری خانگی کاربر استفاده می‌شود؛ بنابراین مثلاً ~/whatever کار می‌کند.
  • متغیرهای محیطی را می‌توان مانند $ENV_VAR استفاده کرد.
  • مسیرهای نسبی، نسبت به دایرکتوری پیکربندی Chawan هستند (یعنی $CHA_DIR).

برخی از متغیرهای محیطی نیز توسط Chawan صادر (export) می‌شوند:

  • $CHA_BIN_DIR: دایرکتوری که فایل اجرایی cha در آن قرار دارد. پیوندهای نمادین برای تعیین این مسیر به طور خودکار حل می‌شوند.
  • $CHA_LIBEXEC_DIR: دایرکتوری تمام فایل‌های اجرایی که Chawan برای عملکرد خود استفاده می‌کند. به طور پیش‌فرض این مقدار $CHA_BIN_DIR/../libexec/chawan است.
  • $CHA_DIR: دایرکتوری پیکربندی. (این مورد توسط کاربر نیز قابل تنظیم است؛ برای جزئیات بخش بالای سند را ببینید.)
  • $CHA_DATA_DIR: اگر فایل پیکربندی از دایرکتوری‌های پایه XDG استفاده کند، این مقدار برابر با ${XDG_DATA_HOME:-$HOME/.local/share}/chawan است. در غیر این صورت، همانند $CHA_DIR خواهد بود.
•
استثنا: اگر $CHA_DIR پیش از فراخوانی cha تنظیم شده باشد، $CHA_DATA_DIR نیز خوانده می‌شود. این برای تضمین کارکرد فراخوانی‌های تودرتو در پیکربندی‌های دارای دایرکتوری‌های پایه XDG است.

دستورهای صفحه‌بند مبتنی بر کلمه می‌توانند بر اساس تعاریف مختلفی از کلمات کار کنند. در حال حاضر این تعاریف عبارتند از:

  • کلمات w3m
  • کلمات vi
  • کلمات بزرگ (Big words)

یک کلمه w3m دنباله‌ای از نویسه‌های حرفی‌عددی است. با نمادها دقیقاً مانند نویسه‌های فاصله (whitespace) برخورد می‌شود.

یک کلمه vi دنباله‌ای از نویسه‌ها در یک دسته نویسه یکسان است. در حال حاضر دسته‌های نویسه عبارتند از: نویسه‌های حرفی‌عددی، نمادها، حروف han، هیراگانا، کاتاکانا و هانگول.

کلمات vi ممکن است با فاصله از هم جدا شوند؛ با این حال، کلمات vi متعلق به دسته‌های جداگانه نیازی به جداسازی با فاصله ندارند. برای مثال دنباله نویسه زیر شامل دو کلمه است:

hello[]+{}@`!

یک کلمه بزرگ دنباله‌ای از نویسه‌های غیرفاصله‌ای است.

این نوع در واقع همانند یک کلمه w3m است، اما نمادها به عنوان غیرفاصله در نظر گرفته می‌شوند.

cha(1), cha-api(7)