.\" -*-Nroff-*- .\" .TH "o" 1 "18 Jun 2026" "o" "User Commands" .SH "نام (NAME)" o \- یک ویرایشگر .SH "خلاصه دستور (SYNOPSIS)" .B o filename [LINE NUMBER] .sp .SH "توضیحات (DESCRIPTION)" ویرایش یک فایل موجود یا ایجاد فایلی جدید. .sp .SH "گزینه‌ها (OPTIONS)" .sp شماره سطر می‌تواند دارای پیشوند \fB+\fP باشد، یا در صورت داشتن پیشوند \fB:\fP به‌صورت پسوند نام فایل قرار گیرد. .sp .TP .B \-c FILENAME یا \-\-copy FILENAME کپی کردن فایل مشخص‌شده در کلیپ‌بورد. .TP .B \-f یا \-\-force نادیده گرفتن قفل‌های فایل هنگام باز کردن فایل‌ها. .TP .B \-l یا \-\-last-command چاپ آخرین دستور استفاده‌شده برای ساخت/قالب‌بندی/برون‌بری (build/format/export) در خروجی. .TP .B \-m FILENAME یا \-\-monitor FILENAME پایش تغییرات فایل مشخص‌شده و باز کردن آن به‌صورت فقط‌خواندنی. .TP .B \-n یا \-\-no-cache جلوگیری از نوشتن تاریخچه موقعیت‌ها، تاریخچه جست‌وجو، بالاترین امتیاز بازی و آخرین دستور ساخت/قالب‌بندی/برون‌بری در دایرکتوری cache. .TP .B \-p FILENAME یا \-\-paste FILENAME چسباندن محتویات کلیپ‌بورد در فایل مشخص‌شده. ترکیب با \-f برای رونویسی روی فایل. .TP .B \-e یا \-\-clear-locks پاک کردن تمام قفل‌های فایل و بستن همه پورتال‌ها. .TP .B \-o یا \-\-ollama فعال‌سازی قابلیت‌های اختصاصی Ollama. مدل را می‌توان در متغیر محیطی \fBOLLAMA_MODEL\fP تعیین کرد. این ویژگی نیازمند این است که سرویس Ollama به‌صورت محلی یا در میزبان مشخص‌شده در متغیر محیطی \fBOLLAMA_HOST\fP فعال و در حال اجرا باشد. .TP .B \-r یا \-\-release ساخت فایل‌های اجرایی نهایی (release) هنگام فشردن ctrl-b، یا ساخت پروژه‌ها زمانی که نام فایلی داده نشده است. .TP .B \-t یا \-\-list فهرست کردن و نمایش رنگی محتوای فایل بدون باز کردن آن برای ویرایش. .TP .B \-b یا \-\-build ساخت (build) فایل مشخص‌شده به‌جای باز کردن آن برای ویرایش. .TP .B \-F یا \-\-fmt قالب‌بندی فایل مشخص‌شده در جای خود (in place) و خروج. به‌صورت بدون واسط (headless): بدون TTY و بدون رابط کاربری اجرا می‌شود. .TP .B \-k یا \-\-create-dir هنگام باز کردن یک فایل جدید، دایرکتوری‌ها را در صورت نیاز ایجاد می‌کند. .TP .B \-d یا \-\-debug شروع در حالت اشکال‌زدایی (debug). .TP .B \-s یا \-\-digraphs فهرست کردن تمامی دایگراف‌های (digraphs) ممکن. .TP .B \-i FILENAME یا \-\-input-file FILENAME استفاده به‌عنوان ورودی استاندارد (stdin) هنگام اجرای برنامه‌ها با ctrl-b. نام فایل پیش‌فرض input.txt است. .TP .B \-a یا \-\-nano شبیه‌سازی Pico/Nano. .TP .B \-q یا \-\-quick-help نمایش همیشگی کادر راهنمای سریع در ابتدای اجرا. .TP .B \-z یا \-\-no-quick-help عدم نمایش کادر راهنمای سریع در ابتدای اجرا. .TP .B \-x یا \-\-noapprox غیرفعال‌سازی تطبیق تقریبی نام فایل. .TP .B \-g GLOB یا \-\-glob GLOB جست‌وجو و باز کردن نخستین فایلی که با زیررشته داده‌شده مطابقت دارد. .TP .B \-v یا \-\-version نمایش نسخه فعلی. .TP .B \-h یا \-\-help نمایش اطلاعات مختصر درباره نحوه استفاده. .PP .SH "کلیدهای میانبر (KEYBINDINGS)" .sp .B ctrl-q خروج از o. .sp .B ctrl-s ذخیره فایل. .sp .B ctrl-w قالب‌بندی فایل فعلی با \fBgoimports\fP یا \fBclang-format\fP، بسته به پسوند فایل. زبان‌های Zig، V، Rust (\fBrustfmt\fP)، Haskell (\fBormolu\fP) و Python (\fBruff format\fP) نیز پشتیبانی می‌شوند. اگر در حالت git باشد، کلمه کلیدی rebase تعاملی گیت در سطر جاری را تغییر می‌دهد. اگر در حالت Markdown باشد، جدول زیر مکان‌نما را قالب‌بندی می‌کند. دو بار فشردن، حالت ویرایش بلوکی را تغییر وضعیت می‌دهد. .sp .B ctrl-a رفتن به ابتدای متن، سپس ابتدای سطر و سپس سطر قبلی. .sp .B ctrl-e رفتن به انتهای سطر و سپس سطر بعدی. .sp .sp .B ctrl-n پیمایش ۱۰ سطر به پایین یا رفتن به نتیجه بعدی در صورت فعال بودن جست‌وجو. درج یک ستون جدید هنگام کار در ویرایشگر جدول Markdown. پرش به پرانتز یا قلاب متناظر در صورتی که کلیدهای جهت‌نما به‌تازگی استفاده شده باشند. .B ctrl-p پیمایش ۱۰ سطر به بالا یا رفتن به نتیجه قبلی در صورت فعال بودن جست‌وجو. حذف یک ستون خالی هنگام کار در ویرایشگر جدول Markdown. پرش به پرانتز یا قلاب متناظر در صورتی که کلیدهای جهت‌نما به‌تازگی استفاده شده باشند. .sp .B ctrl-k حذف تمام نویسه‌ها تا انتهای سطر. در صورت خالی بودن سطر، آن را حذف می‌کند. .sp .B ctrl-g رفتن به یک include یا تعریف (definition)، یا تغییر وضعیت نوار وضعیت. .sp .B ctrl-d حذف یک نویسه منفرد. .sp .B ctrl-o باز کردن منوی دستورات، که فهرستی از اقدامات قابل انجام است. اگر یک فایل PKGBUILD در حال ویرایش باشد و guessica نصب باشد، گزینه‌ای برای به‌روزرسانی فیلدهای pkgver + source در منو وجود خواهد داشت. اگر pandoc نصب باشد، ممکن است گزینه‌ای برای تبدیل به PDF ظاهر شود. .sp .B ctrl-t برای C و C++: جابه‌جایی میان هدر و فایل پیاده‌سازی متناظر. برای Agda: درج یک نماد. برای Markdown: اگر مکان‌نما روی یک جدول باشد، ویرایشگر جدول Markdown را باز می‌کند. برای سایر موارد: ضبط و پخش مجدد کلیدهای فشرده‌شده. کلید escape را فشار دهید تا ماکروی فعلی پاک شود. .sp .B ctrl-c دو بار فشار دهید تا بلوک متنی جاری (تا یک سطر خالی یا انتهای فایل) کپی شود. یک بار فشار دهید تا تنها سطر جاری کپی شود. همچنین پورتال را می‌بندد. .sp .B ctrl-v یک بار فشار دهید تا تنها نخستین سطر متن کپی‌شده به‌صورت پیراسته (trimmed) چسبانده شود. دو بار فشار دهید تا تمام متن کپی‌شده، بدون پیراستن چسبانده شود. .sp .B ctrl-x یک بار فشار دهید تا فقط سطر فعلی بریده (cut) شود (یا اگر خالی است، سطر حذف شود). دو بار فشار دهید تا بلوک متنی جاری (تا یک سطر خالی یا انتهای فایل) بریده شود. همچنین پورتال را می‌بندد. .sp .B ctrl-b ساخت برنامه‌ها، تبدیل به PDF یا برون‌بری به صفحه راهنما (man page). دو بار فشار دهید تا علاوه بر ساخت، برنامه اجرا نیز بشود. برای دیدن آخرین دستور ساخت از \fBo -l\fP استفاده کنید. تغییر وضعیت حالت برجسته (bold) در حالت کتاب. تغییر وضعیت نقطه توقف (breakpoint) در حالت اشکال‌زدایی. .sp .B ctrl-j پیوستن سطرها به یکدیگر. .sp .B ctrl-u واگرد یا Undo (\fBctrl-z\fP نیز ممکن است، اما ممکن است برنامه را به پس‌زمینه بفرستد). .sp .B ctrl-y انجام مجدد (Redo). .sp .B ctrl-l پرش به شماره سطر یا درصدی مشخص. کلید return را برای پرش به ابتدا فشار دهید. دوباره return را فشار دهید تا به انتها بپرید. یکی از حروف برجسته‌شده روی صفحه را فشار دهید تا به آن موقعیت بپرید. .sp .B ctrl-f جست‌وجوی یک رشته از موقعیت فعلی. جست‌وجو چرخشی (wrap around) و حساس به حروف کوچک و بزرگ است. همچنین پس از تایپ عبارت جست‌وجو، امکان جایگزینی متن وجود دارد: برای جایگزینی همه، به‌جای return کلید tab را فشار دهید، عبارت جایگزین را وارد کرده و سپس tab را بزنید. برای یک‌بار جایگزینی، به‌جای return کلید tab را فشار دهید، عبارت جایگزین را وارد کرده و سپس return را بزنید. تنها عبارت \fBf\fP را جست‌وجو کنید تا امضای تابع قبلی پیدا شود. .sp .B esc بازگشت پس از رفتن به موقعیت یا فایلی دیگر. ترسیم مجدد صفحه و پاک کردن آخرین جست‌وجو. .sp .B ctrl-space ساخت برنامه‌ها، تبدیل به PDF یا برون‌بری به صفحه راهنما (man page). دو بار فشار دهید تا پس از ساخت اجرا نیز بشود. تغییر وضعیت چک‌باکس‌ها در Markdown. جابه‌جایی میان گزینه‌های نمایش و برون‌بری در حالت کتاب. .sp آخرین دستور خارجی استفاده‌شده توسط `o` را می‌توان در `~/.cache/o/last_command.sh` یافت. .sp .B ctrl-~ درج تاریخ و زمان فعلی. .sp ابزار `o` تلاش می‌کند به محلی که خطا در آن رخ داده بپرد و در غیر این صورت پیام "Success" را نمایش دهد. .sp .B ctrl-\\\\ تغییر وضعیت یادداشت‌های تک‌خطی برای یک بلوک کد. .sp .B ctrl-_ درج یک نماد با تایپ یک دایگراف ۲ حرفی. دایگراف‌ها همانند ViM هستند. برای بررسی فهرست کامل، پیوند زیر را ببینید: https://raw.githubusercontent.com/xyproto/digraph/main/digraphs.txt .sp .B ctrl-r پرش به قلاب متناظر یا تغییر نام در هنگام برنامه‌نویسی، در غیر این صورت تغییر وضعیت "wrap when typing" (شکست سطر هنگام تایپ). در حالت rebase تعاملی git، کلمات کلیدی را تغییر می‌دهد. دو بار فشار دهید تا یک پورتال باز یا بسته شود. .sp .SH "محیط (ENVIRONMENT)" .sp متغیر محیطی \fBNO_COLOR\fP می‌تواند روی 1 تنظیم شود تا تمامی رنگ‌ها غیرفعال شوند. .sp اگر \fBXTERM_VERSION\fP مقداردهی شده باشد (معمولاً به‌طور خودکار توسط xterm)، طرح رنگی "light" استفاده خواهد شد. .sp متغیر محیطی \fBORBITON_OLLAMA\fP می‌تواند روی 1 تنظیم شود تا ویژگی‌های اختصاصی Ollama فعال شوند. .sp متغیر محیطی \fBOLLAMA_MODEL\fP می‌تواند برای تعیین این‌که کدام مدل Ollama برای تکمیل خودکار کد استفاده شود، تنظیم شود. .sp متغیر محیطی \fBOLLAMA_HOST\fP میزبان سرویس Ollama را در صورتی که قرار است از یک سرویس غیرمحلی استفاده شود تعیین می‌کند. .sp .SH "صفحه‌بندی صفحات راهنما (MAN PAGER)" دستور o می‌تواند برای مشاهده صفحات راهنما با تنظیم MANPAGER روی "o" استفاده شود؛ مثلاً با \fBexport MANPAGER=o\fP. .SH "علت ساخت (WHY)" .sp می‌خواستم ویرایشگری ساده بنویسم که تنها از کدهای ترمینال VT100 استفاده کند. .SH "همچنین ببینید (SEE ALSO)" .BR e3 (1) .BR nano (1) .BR micro (1) .SH "باگ‌های شناخته‌شده (KNOWN BUGS)" در برخی شبیه‌سازهای ترمینال، پیمایش سریع به بالا یا پایین با کلیدهای جهت‌نما ممکن است باعث پرش ناگهانی متن شود (این عملکرد در \fBalacritty\fP بدون مشکل است). برای جلوگیری از این حالت، با \fBctrl-n\fP و \fBctrl-p\fP به بالا و پایین پیمایش کنید. در صورت نیاز، کلید \fBesc\fP را برای ترسیم مجدد صفحه فشار دهید. .sp برخی نشانه‌های یونیکد (unicode runes) ممکن است چیدمان متن را مختل کنند. این موضوع عموماً برای ویرایش کد و فایل‌های پیکربندی مشکلی ایجاد نمی‌کند، اما هنگام ویرایش فایل‌هایی با متن‌های چندزبانه ممکن است دردسرساز شود. .sp در برخی شبیه‌سازهای ترمینال، اگر \fBo\fP مشغول انجام عملیاتی باشد، فشردن \fBctrl-s\fP ممکن است ترمینال را قفل کند. برخی شبیه‌سازها مانند \fBkonsole\fP را می‌توان طوری پیکربندی کرد که این رفتار را غیرفعال کنند. برای باز کردن مجدد قفل ترمینال، کلید \fBctrl-q\fP را فشار دهید (همراه با این احتمال ناخواسته که ممکن است از \fBo\fP خارج شوید). همچنین می‌توانید از منوی \fBctrl-o\fP برای ذخیره و خروج استفاده کنید. .sp دستور \fBo\fP ممکن است با فایل‌های بسیار حجیم (چندین مگابایت به بالا) دچار مشکل شود. برای فایل‌های متنی عادی یا فایل‌های کد منبع، مشکلی وجود نخواهد داشت. .sp چسباندن با کلیک میانی ماوس (به‌جای چسباندن با \fBctrl-v\fP) ممکن است دچار مشکلی شود که فقط نویسه اول را درج کند. .sp دندانه‌گذاری هوشمند همیشه هوشمندانه عمل نمی‌کند. .SH "نسخه (VERSION)" 2.74.4 .SH "نویسنده (AUTHOR)" .B o توسط Alexander F. Rødseth نوشته شده است.