رابط خط فرمان Obsidian (CLI) یک رابط خط فرمان است که به شما امکان میدهد Obsidian را از ترمینال خود برای اسکریپتنویسی، اتوماسیون و یکپارچهسازی با ابزارهای خارجی کنترل کنید.
هر کاری که در Obsidian انجام میدهید، از خط فرمان نیز قابل انجام است. رابط خط فرمان Obsidian حتی شامل [[#دستورات توسعهدهنده|دستورات توسعهدهنده]] برای دسترسی به ابزارهای توسعهدهنده، بازرسی عناصر، گرفتن اسکرینشات، بارگذاری مجدد افزونهها و موارد بیشتر است.
![[obsidian-cli.mp4#interface]]
> [!warning] نیاز به نصبکننده Obsidian نسخه 1.12
> استفاده از CLI نیاز به نصبکننده Obsidian نسخه 1.12 دارد. [[بهروزرساندن Obsidian#بهروزرسانی نصبکننده|راهنمای بهروزرسانی نسخه نصبکننده]] را ببینید.
## نصب رابط خط فرمان Obsidian
به آخرین [[بهروزرساندن Obsidian|نسخه نصبکننده Obsidian]] (+1.12.7) ارتقا دهید.
رابط خط فرمان Obsidian را در Obsidian فعال کنید:
1. به **تنظیمات** ← **عمومی** بروید.
2. **رابط خط فرمان** را فعال کنید.
3. دستورالعمل ثبت رابط خط فرمان Obsidian را دنبال کنید.
اگر در نصب رابط خط فرمان Obsidian با مشکل مواجه شدید، [[#عیبیابی]] را ببینید.
## شروع کار
رابط خط فرمان Obsidian هم از دستورات تکی و هم از رابط کاربری ترمینال (TUI) با راهنمای تعاملی و تکمیل خودکار پشتیبانی میکند.
> [!info] اپلیکیشن Obsidian باید در حال اجرا باشد
> رابط خط فرمان Obsidian نیاز دارد که اپلیکیشن Obsidian در حال اجرا باشد. اگر Obsidian در حال اجرا نیست، اولین دستوری که اجرا میکنید Obsidian را راهاندازی میکند.
>
> به دنبال همگامسازی بدون اپلیکیشن دسکتاپ هستید؟ [[همگامسازی بدون رابط کاربری|Obsidian بدون رابط کاربری]] را ببینید.
### اجرای یک دستور
یک دستور تکی را بدون باز کردن TUI اجرا کنید:
```shell
# اجرای دستور راهنما
obsidian help
```
### استفاده از رابط ترمینال
با وارد کردن `obsidian` از TUI استفاده کنید. دستورات بعدی بدون `obsidian` قابل وارد کردن هستند.
```shell
# باز کردن TUI، سپس اجرای راهنما
obsidian
help
```
TUI از تکمیل خودکار، تاریخچه دستورات و جستجوی معکوس پشتیبانی میکند. از `Ctrl+R` برای جستجو در تاریخچه دستورات استفاده کنید. تمام میانبرهای موجود را در [[#میانبرهای صفحهکلید]] ببینید.
## نمونهها
در اینجا چند نمونه از کارهایی که رابط خط فرمان Obsidian میتواند انجام دهد آمده است.
### استفاده روزمره
```shell
# گشودن یادداشت روزانه امروز
obsidian daily
# افزودن یک وظیفه به یادداشت روزانه
obsidian daily:append content="- [ ] خرید مواد غذایی"
# جستجو در گاوصندوق
obsidian search query="یادداشتهای جلسه"
# خواندن فایل فعال
obsidian read
# فهرست تمام وظایف از یادداشت روزانه
obsidian tasks daily
# ساختن یک یادداشت جدید از قالب
obsidian create name="سفر به پاریس" template=Travel
# فهرست تمام برچسبها در گاوصندوق با تعداد
obsidian tags counts
# مقایسه دو نسخه از یک فایل
obsidian diff file=README from=1 to=3
```
### برای توسعهدهندگان
بسیاری از [[#دستورات توسعهدهنده]] برای توسعه افزونه و پوسته در دسترس هستند. این دستورات به ابزارهای کدنویسی عاملی اجازه میدهند به طور خودکار آزمایش و اشکالزدایی کنند.
```shell
# باز کردن ابزارهای توسعهدهنده
obsidian devtools
# بارگذاری مجدد یک افزونه انجمن که در حال توسعه آن هستید
obsidian plugin:reload id=my-plugin
# گرفتن اسکرینشات از اپلیکیشن
obsidian dev:screenshot path=screenshot.png
# اجرای جاوااسکریپت در کنسول اپلیکیشن
obsidian eval code="app.vault.getFiles().length"
```
## چگونه
### استفاده از پارامترها و فلگها
دستورات میتوانند از **پارامترها** و **فلگها** استفاده کنند. بیشتر دستورات نیازی به پارامتر یا فلگ ندارند. پارامترهای الزامی با `required` مشخص شدهاند. برای مثال:
```shell
# ساختن یک یادداشت جدید با نام پیشفرض «بدون عنوان»
obsidian create
```
یک **پارامتر** مقدار میگیرد، به صورت `parameter=value` نوشته میشود. اگر مقدار دارای فاصله باشد، آن را در گیومه قرار دهید:
```shell
# ساختن یک یادداشت جدید با نام "Note" و محتوای "Hello world"
obsidian create name=Note content="Hello world"
```
یک **فلگ** یک سوئیچ بولی بدون مقدار است. آن را برای فعال کردن اضافه کنید، به عنوان مثال `open` و `overwrite` فلگ هستند:
```shell
# ساختن یادداشت و گشودن آن
obsidian create name=Note content="Hello" open overwrite
```
برای محتوای چندخطی از `\n` برای خط جدید استفاده کنید. از `\t` برای تب استفاده کنید.
```bash
obsidian create name=Note content="# Title\n\nBody text"
```
### هدفگیری یک گاوصندوق
اگر پوشه کاری فعلی ترمینال شما یک پوشه گاوصندوق باشد، آن گاوصندوق به طور پیشفرض استفاده میشود. در غیر این صورت، گاوصندوق فعال فعلی استفاده میشود.
از `vault=<name>` یا `vault=<id>` برای هدفگیری یک گاوصندوق خاص استفاده کنید. این باید اولین پارامتر قبل از دستور شما باشد:
```shell
obsidian vault=Notes daily
obsidian vault="My Vault" search query="test"
```
در TUI، از `vault:open <name>` یا `<id>` برای تغییر به گاوصندوق دیگر استفاده کنید.
### هدفگیری یک فایل
بسیاری از دستورات پارامترهای `file` و `path` را برای هدفگیری یک فایل خاص میپذیرند. اگر هیچکدام ارائه نشود، دستور به طور پیشفرض روی فایل فعال اعمال میشود.
- `file=<name>` فایل را با استفاده از همان حل پیوند مانند [[پیوندهای داخلی|پیوندهای ویکی]] حل میکند، بر اساس نام فایل بدون نیاز به مسیر کامل یا پسوند مطابقت میدهد.
- `path=<path>` نیاز به مسیر دقیق از ریشه گاوصندوق دارد، مثلاً `folder/note.md`.
```shell
# اگر "Recipe.md" تنها فایل با آن نام باشد، اینها معادل هستند
obsidian read file=Recipe
obsidian read path="Templates/Recipe.md"
```
### کپی خروجی
`--copy` را به هر دستوری اضافه کنید تا خروجی به کلیپبورد کپی شود:
```shell
read --copy
search query="TODO" --copy
```
## دستورات عمومی
### `help`
نمایش فهرست تمام دستورات موجود.
| پارامتر | توضیحات |
| ----------- | --------------------------------- |
| `<command>` | نمایش راهنما برای یک دستور خاص. |
### `version`
نمایش نسخه Obsidian.
### `reload`
بارگذاری مجدد پنجره اپلیکیشن.
### `restart`
راهاندازی مجدد اپلیکیشن.
## پایگاهها
دستورات مربوط به [[معرفی پایگاهها|پایگاهها]].
### `bases`
فهرست تمام فایلهای `.base` در گاوصندوق.
### `base:views`
فهرست نماها در فایل پایگاه فعلی.
### `base:create`
ساختن یک آیتم جدید در پایگاه. اگر فایلی مشخص نشده باشد، به طور پیشفرض روی نمای پایگاه فعال اعمال میشود.
```bash
file=<name> # نام فایل پایگاه
path=<path> # مسیر فایل پایگاه
view=<name> # نام نما
name=<name> # نام فایل جدید
content=<text> # محتوای اولیه
open # گشودن فایل پس از ساختن
newtab # گشودن در زبانه جدید
```
### `base:query`
پرسوجو از یک پایگاه و بازگرداندن نتایج.
```bash
file=<name> # نام فایل پایگاه
path=<path> # مسیر فایل پایگاه
view=<name> # نام نمای مورد پرسوجو
format=json|csv|tsv|md|paths # قالب خروجی (پیشفرض: json)
```
## نشانکها
دستورات مربوط به [[نشانکها]].
### `bookmarks`
فهرست نشانکها.
```bash
total # بازگرداندن تعداد نشانکها
verbose # شامل انواع نشانکها
format=json|tsv|csv # قالب خروجی (پیشفرض: tsv)
```
### `bookmark`
افزودن نشانک.
```bash
file=<path> # فایل برای نشانکگذاری
subpath=<subpath> # زیرمسیر (سرفصل یا بلوک) در فایل
folder=<path> # پوشه برای نشانکگذاری
search=<query> # عبارت جستجو برای نشانکگذاری
url=<url> # نشانی اینترنتی برای نشانکگذاری
title=<title> # عنوان نشانک
```
## پالت فرمانها
دستورات مربوط به [[فرماندان]] و [[میانبرها]]. شامل تمام دستورات ثبتشده توسط افزونهها.
### `commands`
فهرست شناسههای دستورات موجود.
```bash
filter=<prefix> # فیلتر بر اساس پیشوند شناسه
```
### `command`
اجرای یک دستور Obsidian.
```bash
id=<command-id> # (الزامی) شناسه دستور برای اجرا
```
### `hotkeys`
فهرست میانبرهای صفحهکلید برای تمام دستورات.
```bash
total # بازگرداندن تعداد میانبرها
verbose # نمایش سفارشی بودن میانبر
format=json|tsv|csv # قالب خروجی (پیشفرض: tsv)
```
### `hotkey`
دریافت میانبر صفحهکلید برای یک دستور.
```bash
id=<command-id> # (الزامی) شناسه دستور
verbose # نمایش سفارشی یا پیشفرض بودن
```
## روزنوشتها
دستورات مربوط به [[روزنوشتها]].
### `daily`
گشودن یادداشت روزانه.
```bash
paneType=tab|split|window # نوع پنجره برای گشودن
```
### `daily:path`
دریافت مسیر یادداشت روزانه. مسیر مورد انتظار را حتی اگر فایل هنوز ساخته نشده باشد برمیگرداند.
### `daily:read`
خواندن محتوای یادداشت روزانه.
### `daily:append`
افزودن محتوا به انتهای یادداشت روزانه.
```bash
content=<text> # (الزامی) محتوا برای افزودن
paneType=tab|split|window # نوع پنجره برای گشودن
inline # افزودن بدون خط جدید
open # گشودن فایل پس از افزودن
```
### `daily:prepend`
افزودن محتوا به ابتدای یادداشت روزانه.
```bash
content=<text> # (الزامی) محتوا برای افزودن به ابتدا
paneType=tab|split|window # نوع پنجره برای گشودن
inline # افزودن بدون خط جدید
open # گشودن فایل پس از افزودن
```
## تاریخچه فایل
### `diff`
فهرست یا مقایسه نسخهها از [[بازیابی پرونده]] محلی و [[معرفی Obsidian Sync|Sync]]. نسخهها از جدیدترین به قدیمیترین شمارهگذاری میشوند.
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
from=<n> # شماره نسخه مبدأ
to=<n> # شماره نسخه مقصد
filter=local|sync # فیلتر بر اساس منبع نسخه
```
**نمونهها:**
```shell
# فهرست تمام نسخههای فایل فعال
diff
# فهرست تمام نسخههای یک فایل خاص
diff file=Recipe
# مقایسه آخرین نسخه با فایل فعلی
diff file=Recipe from=1
# مقایسه دو نسخه
diff file=Recipe from=2 to=1
# نمایش فقط نسخههای Sync
diff filter=sync
```
### `history`
فهرست نسخهها فقط از [[بازیابی پرونده]]. برای دستور معادل Sync، [[#Sync|sync:history]] را ببینید.
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
```
### `history:list`
فهرست تمام فایلهایی که تاریخچه محلی دارند.
### `history:read`
خواندن یک نسخه از تاریخچه محلی.
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
version=<n> # شماره نسخه (پیشفرض: 1)
```
### `history:restore`
بازیابی یک نسخه از تاریخچه محلی.
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
version=<n> # (الزامی) شماره نسخه
```
### `history:open`
گشودن بازیابی پرونده.
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
```
## فایلها و پوشهها
### `file`
نمایش اطلاعات فایل (پیشفرض: فایل فعال).
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
```
نمونه:
```
path Notes/Recipe.md
name Recipe
extension md
size 1024
created 1700000000000
modified 1700001000000
```
### `files`
فهرست فایلها در گاوصندوق.
```bash
folder=<path> # فیلتر بر اساس پوشه
ext=<extension> # فیلتر بر اساس پسوند
total # بازگرداندن تعداد فایلها
```
### `folder`
نمایش اطلاعات پوشه.
```bash
path=<path> # (الزامی) مسیر پوشه
info=files|folders|size # بازگرداندن فقط اطلاعات خاص
```
### `folders`
فهرست پوشهها در گاوصندوق.
```bash
folder=<path> # فیلتر بر اساس پوشه والد
total # بازگرداندن تعداد پوشهها
```
### `open`
گشودن یک فایل.
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
newtab # گشودن در زبانه جدید
```
### `create`
ساختن یا بازنویسی یک فایل.
```bash
name=<name> # نام فایل
path=<path> # مسیر فایل
content=<text> # محتوای اولیه
template=<name> # قالب مورد استفاده
overwrite # بازنویسی اگر فایل موجود باشد
open # گشودن فایل پس از ساختن
newtab # گشودن در زبانه جدید
```
### `read`
خواندن محتوای فایل (پیشفرض: فایل فعال).
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
```
### `append`
افزودن محتوا به انتهای فایل (پیشفرض: فایل فعال).
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
content=<text> # (الزامی) محتوا برای افزودن
inline # افزودن بدون خط جدید
```
### `prepend`
افزودن محتوا پس از فرادادهٔ ابتدای فایل (پیشفرض: فایل فعال).
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
content=<text> # (الزامی) محتوا برای افزودن به ابتدا
inline # افزودن بدون خط جدید
```
### `move`
جابجایی یا تغییر نام فایل (پیشفرض: فایل فعال). اگر در [[تنظیمات#همیشه پیوندهای درونی بهروز شوند|تنظیمات گاوصندوق]] فعال باشد، [[پیوندهای داخلی]] به طور خودکار بهروزرسانی خواهند شد.
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
to=<path> # (الزامی) پوشه یا مسیر مقصد
```
### `rename`
تغییر نام فایل (پیشفرض: فایل فعال). پسوند فایل در صورت حذف از نام جدید به طور خودکار حفظ میشود. از [[#`move`|move]] برای تغییر نام و جابجایی همزمان فایل استفاده کنید. اگر در [[تنظیمات#همیشه پیوندهای درونی بهروز شوند|تنظیمات گاوصندوق]] فعال باشد، [[پیوندهای داخلی]] به طور خودکار بهروزرسانی خواهند شد.
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
name=<name> # (الزامی) نام جدید فایل
```
### `delete`
حذف فایل (پیشفرض: فایل فعال، به طور پیشفرض به زبالهدان).
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
permanent # بدون زبالهدان، حذف دائمی
```
## پیوندها
دستورات مربوط به [[پشتوندها]] و [[پیوندهای برونرو]].
### `backlinks`
فهرست بکلینکها به یک فایل (پیشفرض: فایل فعال).
```bash
file=<name> # نام فایل هدف
path=<path> # مسیر فایل هدف
counts # شامل تعداد پیوندها
total # بازگرداندن تعداد بکلینکها
format=json|tsv|csv # قالب خروجی (پیشفرض: tsv)
```
### `links`
فهرست پیوندهای برونرو از یک فایل (پیشفرض: فایل فعال).
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
total # بازگرداندن تعداد پیوندها
```
### `unresolved`
فهرست پیوندهای حلنشده در گاوصندوق.
```bash
total # بازگرداندن تعداد پیوندهای حلنشده
counts # شامل تعداد پیوندها
verbose # شامل فایلهای منبع
format=json|tsv|csv # قالب خروجی (پیشفرض: tsv)
```
### `orphans`
فهرست فایلهایی بدون پیوند ورودی.
```bash
total # بازگرداندن تعداد یتیمان
```
### `deadends`
فهرست فایلهایی بدون پیوند خروجی.
```bash
total # بازگرداندن تعداد بنبستها
```
## طرح کلی
دستورات مربوط به [[نمای کلی]].
### `outline`
نمایش سرفصلها برای فایل فعلی.
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
format=tree|md|json # قالب خروجی (پیشفرض: tree)
total # بازگرداندن تعداد سرفصلها
```
## افزونهها
دستورات مربوط به [[افزونههای اصلی]] و [[افزونههای انجمن]].
### `plugins`
فهرست افزونههای نصبشده.
```bash
filter=core|community # فیلتر بر اساس نوع افزونه
versions # شامل شماره نسخهها
format=json|tsv|csv # قالب خروجی (پیشفرض: tsv)
```
### `plugins:enabled`
فهرست افزونههای فعال.
```bash
filter=core|community # فیلتر بر اساس نوع افزونه
versions # شامل شماره نسخهها
format=json|tsv|csv # قالب خروجی (پیشفرض: tsv)
```
### `plugins:restrict`
تغییر وضعیت یا بررسی حالت محدود.
```bash
on # فعال کردن حالت محدود
off # غیرفعال کردن حالت محدود
```
### `plugin`
دریافت اطلاعات افزونه.
```bash
id=<plugin-id> # (الزامی) شناسه افزونه
```
### `plugin:enable`
فعال کردن یک افزونه.
```bash
id=<id> # (الزامی) شناسه افزونه
filter=core|community # نوع افزونه
```
### `plugin:disable`
غیرفعال کردن یک افزونه.
```bash
id=<id> # (الزامی) شناسه افزونه
filter=core|community # نوع افزونه
```
### `plugin:install`
نصب یک افزونه انجمن.
```bash
id=<id> # (الزامی) شناسه افزونه
enable # فعال کردن پس از نصب
```
### `plugin:uninstall`
حذف یک افزونه انجمن.
```bash
id=<id> # (الزامی) شناسه افزونه
```
### `plugin:reload`
بارگذاری مجدد یک افزونه (برای توسعهدهندگان).
```bash
id=<id> # (الزامی) شناسه افزونه
```
## ویژگیها
دستورات مرتبط با [[ویژگیها]].
### `aliases`
فهرست نامهای مستعار در گاوصندوق. از `active` یا `file`/`path` برای نمایش نامهای مستعار یک فایل خاص استفاده کنید.
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
total # بازگرداندن تعداد نامهای مستعار
verbose # شامل مسیرهای فایل
active # نمایش نامهای مستعار فایل فعال
```
### `properties`
فهرست ویژگیها در گاوصندوق. از `active` یا `file`/`path` برای نمایش ویژگیهای یک فایل خاص استفاده کنید.
```bash
file=<name> # نمایش ویژگیها برای فایل
path=<path> # نمایش ویژگیها برای مسیر
name=<name> # دریافت تعداد ویژگی خاص
sort=count # مرتبسازی بر اساس تعداد (پیشفرض: نام)
format=yaml|json|tsv # قالب خروجی (پیشفرض: yaml)
total # بازگرداندن تعداد ویژگیها
counts # شامل تعداد تکرار
active # نمایش ویژگیها برای فایل فعال
```
### `property:set`
تنظیم یک ویژگی روی یک فایل (پیشفرض: فایل فعال).
```bash
name=<name> # (الزامی) نام ویژگی
value=<value> # (الزامی) مقدار ویژگی
type=text|list|number|checkbox|date|datetime # نوع ویژگی
file=<name> # نام فایل
path=<path> # مسیر فایل
```
### `property:remove`
حذف یک ویژگی از یک فایل (پیشفرض: فایل فعال).
```bash
name=<name> # (الزامی) نام ویژگی
file=<name> # نام فایل
path=<path> # مسیر فایل
```
### `property:read`
خواندن مقدار یک ویژگی از یک فایل (پیشفرض: فایل فعال).
```bash
name=<name> # (الزامی) نام ویژگی
file=<name> # نام فایل
path=<path> # مسیر فایل
```
## Publish
دستورات مربوط به [[مقدمهای بر Obsidian Publish|Obsidian Publish]].
### `publish:site`
نمایش اطلاعات وبگاه انتشار (slug، نشانی اینترنتی).
### `publish:list`
فهرست فایلهای منتشرشده.
```bash
total # بازگرداندن تعداد فایلهای منتشرشده
```
### `publish:status`
فهرست تغییرات انتشار.
```bash
total # بازگرداندن تعداد تغییرات
new # نمایش فقط فایلهای جدید
changed # نمایش فقط فایلهای تغییریافته
deleted # نمایش فقط فایلهای حذفشده
```
### `publish:add`
انتشار یک فایل یا تمام فایلهای تغییریافته (پیشفرض: فایل فعال).
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
changed # انتشار تمام فایلهای تغییریافته
```
### `publish:remove`
لغو انتشار یک فایل (پیشفرض: فایل فعال).
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
```
### `publish:open`
گشودن فایل در وبگاه منتشرشده (پیشفرض: فایل فعال).
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
```
## یادداشتهای تصادفی
دستورات مربوط به [[یادداشت تصادفی]].
### `random`
گشودن یک یادداشت تصادفی.
```bash
folder=<path> # محدود به پوشه
newtab # گشودن در زبانه جدید
```
### `random:read`
خواندن یک یادداشت تصادفی (شامل مسیر).
```bash
folder=<path> # محدود به پوشه
```
## جستجو
دستورات مربوط به [[جستجو]].
### `search`
جستجوی متن در گاوصندوق. مسیرهای فایل مطابق را برمیگرداند.
```bash
query=<text> # (الزامی) عبارت جستجو
path=<folder> # محدود به پوشه
limit=<n> # حداکثر فایلها
format=text|json # قالب خروجی (پیشفرض: text)
total # بازگرداندن تعداد مطابقتها
case # حساس به بزرگوکوچکی حرف
```
### `search:context`
جستجو با زمینه خط مطابق. خروجی به سبک grep با فرمت `path:line: text` برمیگرداند.
```bash
query=<text> # (الزامی) عبارت جستجو
path=<folder> # محدود به پوشه
limit=<n> # حداکثر فایلها
format=text|json # قالب خروجی (پیشفرض: text)
case # حساس به بزرگوکوچکی حرف
```
### `search:open`
گشودن نمای جستجو.
```bash
query=<text> # عبارت جستجوی اولیه
```
## Sync
دستورات مربوط به [[معرفی Obsidian Sync|Obsidian Sync]].
> [!tip] همگامسازی بدون اپلیکیشن دسکتاپ
> این دستورات Sync را درون اپلیکیشن Obsidian در حال اجرا کنترل میکنند. برای همگامسازی گاوصندوقها از خط فرمان بدون اپلیکیشن دسکتاپ، [[همگامسازی بدون رابط کاربری]] را ببینید.
### `sync`
توقف موقت یا ادامه همگامسازی.
```bash
on # ادامه همگامسازی
off # توقف موقت همگامسازی
```
### `sync:status`
نمایش وضعیت و میزان استفاده همگامسازی.
### `sync:history`
فهرست تاریخچه نسخههای همگامسازی برای یک فایل (پیشفرض: فایل فعال).
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
total # بازگرداندن تعداد نسخهها
```
### `sync:read`
خواندن یک نسخه همگامسازی (پیشفرض: فایل فعال).
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
version=<n> # (الزامی) شماره نسخه
```
### `sync:restore`
بازیابی یک نسخه همگامسازی (پیشفرض: فایل فعال).
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
version=<n> # (الزامی) شماره نسخه
```
### `sync:open`
گشودن تاریخچه همگامسازی (پیشفرض: فایل فعال).
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
```
### `sync:deleted`
فهرست فایلهای حذفشده در همگامسازی.
```bash
total # بازگرداندن تعداد فایلهای حذفشده
```
## برچسبها
دستورات مربوط به [[برچسبها]].
### `tags`
فهرست برچسبها در گاوصندوق. از `active` یا `file`/`path` برای نمایش برچسبهای یک فایل خاص استفاده کنید.
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
sort=count # مرتبسازی بر اساس تعداد (پیشفرض: نام)
total # بازگرداندن تعداد برچسبها
counts # شامل تعداد برچسبها
format=json|tsv|csv # قالب خروجی (پیشفرض: tsv)
active # نمایش برچسبهای فایل فعال
```
### `tag`
دریافت اطلاعات برچسب.
```bash
name=<tag> # (الزامی) نام برچسب
total # بازگرداندن تعداد تکرار
verbose # شامل فهرست فایلها و تعداد
```
## وظایف
دستورات مدیریت وظایف.
### `tasks`
فهرست وظایف در گاوصندوق. از `active` یا `file`/`path` برای نمایش وظایف یک فایل خاص استفاده کنید.
```bash
file=<name> # فیلتر بر اساس نام فایل
path=<path> # فیلتر بر اساس مسیر فایل
status="<char>" # فیلتر بر اساس کاراکتر وضعیت
total # بازگرداندن تعداد وظایف
done # نمایش وظایف تکمیلشده
todo # نمایش وظایف ناتمام
verbose # گروهبندی بر اساس فایل با شماره خط
format=json|tsv|csv # قالب خروجی (پیشفرض: text)
active # نمایش وظایف فایل فعال
daily # نمایش وظایف از یادداشت روزانه
```
**نمونهها:**
```bash
# فهرست تمام وظایف در گاوصندوق
tasks
# فهرست وظایف ناتمام در گاوصندوق
tasks todo
# فهرست وظایف تکمیلشده از یک فایل خاص
tasks file=Recipe done
# فهرست وظایف از یادداشت روزانه امروز
tasks daily
# شمارش وظایف در یادداشت روزانه
tasks daily total
# فهرست وظایف با مسیر فایل و شماره خط
tasks verbose
# فیلتر بر اساس وضعیت سفارشی (کاراکترهای خاص را در گیومه قرار دهید)
tasks 'status=?'
```
### `task`
نمایش یا بهروزرسانی یک وظیفه.
```bash
ref=<path:line> # مرجع وظیفه (path:line)
file=<name> # نام فایل
path=<path> # مسیر فایل
line=<n> # شماره خط
status="<char>" # تنظیم کاراکتر وضعیت
toggle # تغییر وضعیت وظیفه
daily # یادداشت روزانه
done # علامتگذاری به عنوان انجامشده
todo # علامتگذاری به عنوان انجامنشده
```
**نمونهها:**
```bash
# نمایش اطلاعات وظیفه
task file=Recipe line=8
task ref="Recipe.md:8"
# تغییر وضعیت تکمیل وظیفه
task ref="Recipe.md:8" toggle
# تغییر وضعیت وظیفه در یادداشت روزانه
task daily line=3 toggle
# تنظیم وضعیت وظیفه
task file=Recipe line=8 done # → [x]
task file=Recipe line=8 todo # → [ ]
task file=Recipe line=8 status=- # → [-]
task daily line=3 done # علامتگذاری وظیفه یادداشت روزانه به عنوان انجامشده
```
## الگوها
دستورات مربوط به [[الگوها]].
### `templates`
فهرست الگوها.
```bash
total # بازگرداندن تعداد الگوها
```
### `template:read`
خواندن محتوای الگو.
```bash
name=<template> # (الزامی) نام الگو
title=<title> # عنوان برای حل متغیرها
resolve # حل متغیرهای الگو
```
### `template:insert`
درج الگو در فایل فعال.
```bash
name=<template> # (الزامی) نام الگو
```
**نکات:**
- گزینه `resolve` متغیرهای `{{date}}`، `{{time}}`، `{{title}}` را پردازش میکند
- از `create path=<path> template=<name>` برای ساختن فایل با الگو استفاده کنید
## پوستهها و تکهکدها
دستورات مربوط به [[پوستهها]] و [[تکهکدهای CSS]].
### `themes`
فهرست پوستههای نصبشده.
```bash
versions # شامل شماره نسخهها
```
### `theme`
نمایش پوسته فعال یا دریافت اطلاعات.
```bash
name=<name> # نام پوسته برای جزئیات
```
### `theme:set`
تنظیم پوسته فعال.
```bash
name=<name> # (الزامی) نام پوسته (خالی برای پیشفرض)
```
### `theme:install`
نصب یک پوسته انجمن.
```bash
name=<name> # (الزامی) نام پوسته
enable # فعال کردن پس از نصب
```
### `theme:uninstall`
حذف یک پوسته.
```bash
name=<name> # (الزامی) نام پوسته
```
### `snippets`
فهرست تکهکدهای CSS نصبشده.
### `snippets:enabled`
فهرست تکهکدهای CSS فعال.
### `snippet:enable`
فعال کردن یک تکهکد CSS.
```bash
name=<name> # (الزامی) نام تکهکد
```
### `snippet:disable`
غیرفعال کردن یک تکهکد CSS.
```bash
name=<name> # (الزامی) نام تکهکد
```
## یادداشتهای یکتا
دستورات مربوط به [[یادداشتیکتاساز]].
### `unique`
ساختن یادداشت یکتا.
```bash
name=<text> # نام یادداشت
content=<text> # محتوای اولیه
paneType=tab|split|window # نوع پنجره برای گشودن
open # گشودن فایل پس از ساختن
```
## گاوصندوق
### `vault`
نمایش اطلاعات گاوصندوق.
```bash
info=name|path|files|folders|size # بازگرداندن فقط اطلاعات خاص
```
### `vaults`
فهرست گاوصندوقهای شناختهشده.
```bash
total # بازگرداندن تعداد گاوصندوقها
verbose # شامل مسیرهای گاوصندوق
```
### `vault:open`
تغییر به گاوصندوق دیگر (فقط در TUI).
```bash
name=<name> # (الزامی) نام گاوصندوق
```
## نمایشگر وب
دستورات مربوط به [[نمایشگر وب]].
### `web`
گشودن نشانی اینترنتی در نمایشگر وب.
```bash
url=<url> # (الزامی) نشانی اینترنتی برای گشودن
newtab # گشودن در زبانه جدید
```
## واژهشمار
دستورات مربوط به [[واژهشمار]].
### `wordcount`
شمارش واژهها و کاراکترها (پیشفرض: فایل فعال).
```bash
file=<name> # نام فایل
path=<path> # مسیر فایل
words # بازگرداندن فقط تعداد واژهها
characters # بازگرداندن فقط تعداد کاراکترها
```
## فضای کاری
دستورات مربوط به [[فضای کاری]] و افزونه [[فضاهای کاری]].
### `workspace`
نمایش درخت فضای کاری.
```bash
ids # شامل شناسههای آیتمهای فضای کاری
```
### `workspaces`
فهرست فضاهای کاری ذخیرهشده.
```bash
total # بازگرداندن تعداد فضاهای کاری
```
### `workspace:save`
ذخیره چیدمان فعلی به عنوان فضای کاری.
```bash
name=<name> # نام فضای کاری
```
### `workspace:load`
بارگیری یک فضای کاری ذخیرهشده.
```bash
name=<name> # (الزامی) نام فضای کاری
```
### `workspace:delete`
حذف یک فضای کاری ذخیرهشده.
```bash
name=<name> # (الزامی) نام فضای کاری
```
### `tabs`
فهرست زبانههای باز.
```bash
ids # شامل شناسههای زبانه
```
### `tab:open`
گشودن یک زبانه جدید.
```bash
group=<id> # شناسه گروه زبانه
file=<path> # فایل برای گشودن
view=<type> # نوع نما برای گشودن
```
### `recents`
فهرست فایلهای اخیراً گشودهشده.
```bash
total # بازگرداندن تعداد فایلهای اخیر
```
## دستورات توسعهدهنده
دستورات برای کمک به توسعه [[افزونههای انجمن]] و [[پوستهها]]. برای اطلاعات بیشتر به [مستندات توسعهدهنده Obsidian](https://docs.obsidian.md) مراجعه کنید.
### `devtools`
تغییر وضعیت ابزارهای توسعه Electron.
### `dev:debug`
اتصال/قطع اشکالزدای Chrome DevTools Protocol.
```bash
on # اتصال اشکالزدا
off # قطع اشکالزدا
```
### `dev:cdp`
اجرای یک دستور Chrome DevTools Protocol.
```bash
method=<CDP.method> # (الزامی) متد CDP برای فراخوانی
params=<json> # پارامترهای متد به صورت JSON
```
### `dev:errors`
نمایش خطاهای جاوااسکریپت ثبتشده.
```bash
clear # حذف بافر خطا
```
### `dev:screenshot`
گرفتن اسکرینشات (PNG با کدگذاری base64 برمیگرداند).
```bash
path=<filename> # مسیر فایل خروجی
```
### `dev:console`
نمایش پیامهای کنسول ثبتشده.
```bash
limit=<n> # حداکثر پیامها برای نمایش (پیشفرض 50)
level=log|warn|error|info|debug # فیلتر بر اساس سطح لاگ
clear # حذف بافر کنسول
```
### `dev:css`
بازرسی CSS با محل منبع.
```bash
selector=<css> # (الزامی) انتخابگر CSS
prop=<name> # فیلتر بر اساس نام ویژگی
```
### `dev:dom`
پرسوجوی عناصر DOM.
```bash
selector=<css> # (الزامی) انتخابگر CSS
attr=<name> # دریافت مقدار ویژگی
css=<prop> # دریافت مقدار ویژگی CSS
total # بازگرداندن تعداد عناصر
text # بازگرداندن محتوای متنی
inner # بازگرداندن innerHTML به جای outerHTML
all # بازگرداندن تمام مطابقتها به جای اولین
```
### `dev:mobile`
تغییر وضعیت شبیهسازی موبایل.
```bash
on # فعال کردن شبیهسازی موبایل
off # غیرفعال کردن شبیهسازی موبایل
```
### `eval`
اجرای جاوااسکریپت و بازگرداندن نتیجه.
```bash
code=<javascript> # (الزامی) کد جاوااسکریپت برای اجرا
```
## میانبرهای صفحهکلید
این میانبرها در [[#استفاده از رابط ترمینال|TUI]] در دسترس هستند.
### ناوبری
| عملکرد | میانبر |
| ----------------------------------------------------- | -------------- |
| جابجایی نشانگر به چپ | `←` / `Ctrl+B` |
| جابجایی نشانگر به راست (پذیرش پیشنهاد در انتهای خط) | `→` / `Ctrl+F` |
| پرش به ابتدای خط | `Ctrl+A` |
| پرش به انتهای خط | `Ctrl+E` |
| حرکت یک کلمه به عقب | `Alt+B` |
| حرکت یک کلمه به جلو | `Alt+F` |
### ویرایش
| عملکرد | میانبر |
| ----------------------------- | -------------------------- |
| حذف تا ابتدای خط | `Ctrl+U` |
| حذف تا انتهای خط | `Ctrl+K` |
| حذف کلمه قبلی | `Ctrl+W` / `Alt+Backspace` |
### تکمیل خودکار
| عملکرد | میانبر |
| ---------------------------------------------------- | ----------- |
| ورود به حالت پیشنهاد / پذیرش پیشنهاد انتخابشده | `Tab` |
| خروج از حالت پیشنهاد | `Shift+Tab` |
| ورود به حالت پیشنهاد (از ورودی تازه) | `↓` |
| پذیرش اولین/انتخابشده پیشنهاد (در انتهای خط) | `→` |
### تاریخچه
| عملکرد | میانبر |
| ---------------------------------------------------------------- | -------------- |
| مدخل قبلی تاریخچه / حرکت پیشنهادات به بالا | `↑` / `Ctrl+P` |
| مدخل بعدی تاریخچه / حرکت پیشنهادات به پایین | `↓` / `Ctrl+N` |
| جستجوی معکوس تاریخچه (تایپ برای فیلتر، `Ctrl+R` برای چرخش) | `Ctrl+R` |
### سایر
| عملکرد | میانبر |
| ----------------------------------------------------------- | ------------------- |
| اجرای دستور یا پذیرش پیشنهاد | `Enter` |
| واگرد تکمیل خودکار / خروج از حالت پیشنهاد / پاک کردن ورودی | `Escape` |
| پاک کردن صفحه | `Ctrl+L` |
| خروج | `Ctrl+C` / `Ctrl+D` |
## عیبیابی
اگر در اجرای رابط خط فرمان Obsidian مشکل دارید:
- مطمئن شوید از آخرین [[بهروزرساندن Obsidian|نسخه نصبکننده Obsidian]] (1.12.7 یا بالاتر) استفاده میکنید.
- اگر Obsidian را از نسخه قدیمیتری بهروزرسانی کردهاید، تنظیم CLI را خاموش و دوباره روشن کنید، سپس اجازه دهید Obsidian ثبت خودکار PATH را انجام دهد.
- پس از ثبت CLI ترمینال خود را مجدداً راهاندازی کنید تا تغییرات PATH اعمال شوند.
- Obsidian باید در حال اجرا باشد. CLI به نمونه Obsidian در حال اجرا متصل میشود.
### ویندوز
رابط خط فرمان Obsidian در ویندوز نیاز به نصبکننده Obsidian نسخه +1.12.7 دارد. [[بهروزرساندن Obsidian|بهروزرسانی نسخه نصب