واجهة سطر أوامر Obsidian هي واجهة سطر الأوامر التي تتيح لك التحكم في Obsidian من الطرفية للبرمجة النصية والأتمتة والتكامل مع الأدوات الخارجية.
أي شيء يمكنك فعله في Obsidian يمكنك فعله من سطر الأوامر. تتضمن واجهة سطر أوامر Obsidian حتى [[#أوامر المطورين|أوامر المطورين]] للوصول إلى أدوات المطورين وفحص العناصر والتقاط لقطات الشاشة وإعادة تحميل الإضافات والمزيد.
![[obsidian-cli.mp4#interface]]
> [!warning] يتطلب مُثبّت Obsidian 1.12
> يتطلب استخدام واجهة سطر الأوامر مُثبّت Obsidian 1.12. راجع [[تحديث Obsidian#تحديثات المُثبّت|دليل تحديث إصدار المُثبّت]].
## تثبيت واجهة سطر أوامر Obsidian
قم بالترقية إلى أحدث [[تحديث Obsidian|إصدار مُثبّت Obsidian]] (1.11.7) وأحدث [[إصدارات الوصول المبكر|إصدار الوصول المبكر]] (1.12.x).
قم بتمكين واجهة سطر أوامر Obsidian في Obsidian:
1. انتقل إلى **الإعدادات** ← **عام**.
2. قم بتمكين **واجهة سطر الأوامر**.
3. اتبع التعليمات لتسجيل واجهة سطر أوامر Obsidian.
إذا واجهت مشاكل في تثبيت واجهة سطر أوامر Obsidian راجع [[#استكشاف الأخطاء وإصلاحها]].
## البدء
تدعم واجهة سطر أوامر Obsidian كلاً من الأوامر الفردية وواجهة المستخدم الطرفية (TUI) مع المساعدة التفاعلية والإكمال التلقائي.
> [!info] يجب أن يكون تطبيق Obsidian قيد التشغيل
> تتطلب واجهة سطر أوامر Obsidian أن يكون تطبيق Obsidian قيد التشغيل. إذا لم يكن Obsidian قيد التشغيل، فإن أول أمر تقوم بتشغيله سيبدأ Obsidian.
>
> هل تبحث عن المزامنة بدون تطبيق سطح المكتب؟ راجع [[Obsidian Headless|Obsidian Headless]].
### تشغيل أمر
قم بتشغيل أمر فردي بدون فتح واجهة المستخدم الطرفية:
```shell
# تشغيل أمر المساعدة
obsidian help
```
### استخدام واجهة الطرفية
استخدم واجهة المستخدم الطرفية بإدخال `obsidian`. يمكن إدخال الأوامر اللاحقة بدون `obsidian`.
```shell
# فتح واجهة المستخدم الطرفية، ثم تشغيل المساعدة
obsidian
help
```
تدعم واجهة المستخدم الطرفية الإكمال التلقائي وسجل الأوامر والبحث العكسي. استخدم `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
# تشغيل JavaScript في وحدة تحكم التطبيق
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"
```
في واجهة المستخدم الطرفية، استخدم `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> # رابط 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|المزامنة]]. يتم ترقيم الإصدارات من الأحدث إلى الأقدم.
```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
# إظهار إصدارات المزامنة فقط
diff filter=sync
```
### `history`
سرد الإصدارات من [[استرداد الملف|استعادة الملفات]] فقط. راجع [[#المزامنة|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> # مسار الملف
```
## النشر
أوامر لـ [[مقدمة عن Obsidian Publish|Obsidian Publish]].
### `publish:site`
عرض معلومات موقع النشر (الاسم المختصر، الرابط).
### `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> # استعلام البحث الأولي
```
## المزامنة
أوامر لـ [[مقدمة عن Obsidian Sync|Obsidian Sync]].
> [!tip] المزامنة بدون تطبيق سطح المكتب
> تتحكم هذه الأوامر في المزامنة داخل تطبيق Obsidian قيد التشغيل. لمزامنة الخزائن من سطر الأوامر بدون تطبيق سطح المكتب، راجع [[Sync بدون واجهة|المزامنة بدون واجهة رسومية]].
### `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> # مرجع المهمة (المسار:السطر)
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|مقتطفات 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`
التبديل إلى خزنة مختلفة (واجهة المستخدم الطرفية فقط).
```bash
name=<name> # (مطلوب) اسم الخزنة
```
## عارض الويب
أوامر لـ [[عارض الويب|عارض الويب]].
### `web`
فتح رابط URL في عارض الويب.
```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.
```bash
on # إرفاق المصحح
off # فصل المصحح
```
### `dev:cdp`
تشغيل أمر بروتوكول Chrome DevTools.
```bash
method=<CDP.method> # (مطلوب) طريقة CDP للاستدعاء
params=<json> # معاملات الطريقة بصيغة JSON
```
### `dev:errors`
عرض أخطاء JavaScript المُلتقطة.
```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`
تنفيذ JavaScript وإرجاع النتيجة.
```bash
code=<javascript> # (مطلوب) كود JavaScript للتنفيذ
```
## اختصارات لوحة المفاتيح
هذه الاختصارات متاحة في [[#استخدام واجهة الطرفية|واجهة المستخدم الطرفية]].
### التنقل
| الإجراء | الاختصار |
| --------------------------------------------------------- | ----------------- |
| نقل المؤشر لليسار | `←` / `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.4 أو أعلى).
- أعد تشغيل الطرفية بعد تسجيل واجهة سطر الأوامر لكي تأخذ تغييرات PATH مفعولها.
- يجب أن يكون Obsidian قيد التشغيل. تتصل واجهة سطر الأوامر بمثيل Obsidian قيد التشغيل. إذا لم يكن Obsidian قيد التشغيل، فإن أول أمر في واجهة سطر الأوامر يجب أن يبدأ التطبيق.
### Windows
تتطلب واجهة سطر أوامر Obsidian على Windows مُثبّت Obsidian 1.12.4+. راجع [[تحديث Obsidian|تحديث إصدار المُثبّت]].
يستخدم Windows مُعيد توجيه طرفية يربط Obsidian بـ stdin/stdout بشكل صحيح. هذا ضروري لأن Obsidian يعمل عادةً كتطبيق واجهة رسومية وهو غير متوافق مع مخرجات الطرفية على Windows. عند تثبيت Obsidian 1.12.4+ سيتم إضافة مُعيد التوجيه الطرفي `Obsidian.com` في المجلد الذي ثبّتّ فيه ملف `Obsidian.exe`.
### macOS
يضيف تسجيل واجهة سطر الأوامر دليل ثنائيات Obsidian إلى PATH عبر `~/.zprofile`. إذا كنت تواجه مشاكل، تحقق مما يلي:
يجب أن يحتوي ملف `~/.zprofile` على السطر التالي. إذا كان مفقودًا، يمكنك إضافته يدويًا:
```
export PATH="$PATH:/Applications/Obsidian.app/Contents/MacOS"
```
#### الصدفات البديلة
يعدّل تسجيل واجهة سطر الأوامر فقط `~/.zprofile`، المُستخدم بواسطة zsh (صدفة macOS الافتراضية). إذا كنت تستخدم صدفة مختلفة، أضف دليل ثنائيات Obsidian إلى ملف تكوين صدفتك يدويًا:
- Bash: أضف `export PATH="$PATH:/Applications/Obsidian.app/Contents/MacOS"` إلى `~/.bash_profile`
- Fish: شغّل `fish_add_path /Applications/Obsidian.app/Contents/MacOS`
### Linux
ينشئ تسجيل واجهة سطر الأوامر رابطًا رمزيًا في `/usr/local/bin/obsidian` يشير إلى ثنائي Obsidian (يتطلب sudo).
#### AppImage
لتثبيتات AppImage، يشير الرابط الرمزي إلى ملف `.AppImage` بدلاً من الثنائي الداخلي، حيث يتغير مسار التحميل في كل تشغيل. إذا فشل sudo، يتم إنشاء الرابط الرمزي في `~/.local/bin/obsidian` كبديل. إذا كنت تواجه مشاكل، تحقق مما يلي.
تحقق من وجود الرابط الرمزي وأنه يشير إلى الثنائي الصحيح:
```
ls -l /usr/local/bin/obsidian
```
إذا كان الرابط الرمزي مفقودًا، أنشئه يدويًا:
```
sudo ln -s /path/to/obsidian /usr/local/bin/obsidian
```
إذا تم إنشاء الرابط الرمزي في `~/.local/bin/` بدلاً من ذلك، تأكد من أن هذا الدليل موجود في PATH. أضف ما يلي إلى `~/.bashrc` أو `~/.zshrc`:
```
export PATH="$PATH:$HOME/.local/bin"
```
إذا تعطل الرابط الرمزي بعد نقل أو إعادة تسمية ملف `.AppImage`، أعد تسجيل واجهة سطر الأ