من دیوونه ویرایشگر‌ها هستم وقتی اسم جدید به گوشم میخوره، خیلی سخت میتونم جلو خودم رو بگیرم که امتحانش نکنم، قبلا هم درمورد سابلایم و اتم و وی‌اس‌کد نوشته بودم. توی این پست قراره با یک ویرایشگر جوون آشنا بشیم که سعی داره از نصایح بزرگای قبل خودت نهایت استفاده رو بکنه.

Oni برای کار خودش متکی به ویرایشگر neovim هست و تلاش داره تا برنامه‌نویس‌های جدید رو هم با vim دوست کنه. این پروژه هرچند تو ابتدای راه خودش هست ولی بنظر من توانایی این رو داره که رقیب جدی برای بقیه ویراشگر‌ها باشه. Oni خیلی شبیه vscode و Atom هست و خیلی از پلاگین‌ها و افزونه‌های فعلی اون با الهام از این دو ویرایشگرنوشته شده. پس ناگفته معلومه که Oni هم از الکترون استفاده میکنه و نکته جالب دیگه  درموردش اینه که برای نوشتنش از React استفاده شده.

بطور کلی Oni سعی داره آنچه خوبان همه دارند رو داشته باشه، و صد البته بدی‌های اونارو هم داره و مثل بقیه پشتیبانی خوبی از فارسی نداره.

فهرست

پالت فرامین

کلید میانبر: Ctrl+Shift+P
پالت فرامین در Oni به قدرت VSCode نیست و هنوز راه زیادی برای رقابت جدی داره ولی ابزارهایی که توی این پالت هست شدیدا کاربردی هستند. کلید میانبر دسترسی به پالت Ctrl+Shift+P هست.

تغییر فایل

کلید میانبر: Ctrl+P
Oni هم شبیه دیگر ویرایشگر‌ها راه سریع و راحتی رو برای پیدا کردن و انتخاب فایل ایجاد کرده. با استفاده از انتخاب‌گر فایل براحتی می‌تونید فایل مورد نظر خودتون رو جستجو کنید و توی تب جدید باز کنید.

اسنیپت‌ها

اسنیپت‌ها یکی از کاربردی ترین ویژگی‌های تمامی ویرایشگرها هستند، با ایجاد  استنیپت‌ها میتوانید با واردکردن کلیدواژه‌های خاص عبارات مورد نظر خود را  تایپ کنید. در واقع می‌توان گفت اسنیپت‌ها همان مفهوم auto-complete هایی را دارند که خود شما میتوانید آنها را ایجاد کنید.
در Oni برخلاف دیگر ویرایشگرها نیازی به فشردن کلید میانبر برای نمایش اسنیپت‌ها نیست و همزمان با تایپ و تنها با تاخیر چند میلی‌ثانیه‌ای لیستی از پیشنهادات زیر متن شما نمایش داده می‌شود.

برای ایجاد یک اسنیپت جدید کافی است در پالت فرامین عبارت global snippets را وارد کرده و اولین فرمان را انتخاب کنید.در ویرایشگر باز شده می‌توانید اسنیپت‌های دلخواه خود را وارد کنید. ساختار اسنیپت‌ها در Oni دقیقا شبیه vscode است. کد زیر یک اسنیپت ساده را نمایش می‌دهد.

{
   "For_Loop": {
       "prefix": "for",
       "body": [
         "for (const ${2:element} of ${1:array}) {",
         "\t$0",
         "}"
       ],
       "description": "For Loop"
   }
}

در کد فوق :

  • Foor Loop: نام اسنیپت جدید شماست
  • prefix: مشخص کننده عبارت معرف اسنیپت است، عبارتی که شما با تایپ آن میتوانید اسنیپت را فراخوانی کنید.
  • body: بدنه اصلی اسنیپت شماست که جایگزین prefix می‌شود. درون این بدنه میتوانید متغییر نیز تعریف کنید، برای مثال در مثال فوق نام متغیر حلقه خود ی متغییر درون بدنه است.
  • description: توضیح کوتاهی درمورد اسنیپت است که در لیست اسنیپت‌ها نمایش داده می‌شود.

کلیدهای میانبر

همونطور که قبلا هم گفتیم، Oni برپایه neovim کار میکنه و از توانایی اون برای ویرایش متن استفاده می‌کنه، پس توی Oni تمام میانبرهای vim قابل استفاده است و تقریبا شما نیازی به استفاده از موس ندارید. در زیر چند مورد از میانبرهای مهم رو باهم می‌بینیم.

Crtl+G: با فشردن این میانبر یکی کد دو حرفی به تمام عملیات‌های موجود در صفحه ویرایش‌گر اختصاص داده می‌شه که با فشردن اون کد رو رقمی می‌تونید اون عملیات رو انتخاب کنید. برای مثال به تصویر زیر نگاه کنید. با فشردن مد کد دوحرفی AA شما میتونید تب اول رو انتخاب کنید و محتویات اون تب رو ویرایش کنید.

Oni - Sneak

10g: یکی از میانبرهای خیلی خوب در Oni میانبر پرش به یک شماره سطر است. کافیه شماره سطر مورد نظر خودتون رو تایپ کنید(نگران این نباشید که جایی نشون داده نمیشه) وبلافاصه حرف g رو فشار بدید، میبینید که سطر مورد نظر شما نمایش داده میشه. با این توضیح 10g میانبر پرش به سطر شماره 10 هست

gt: پرش به تب بعدی

gT: پرش به تب قبلی

یکی از بهترین ویژگی‌های Oni بخش راهنمای کار با vim هست، توی این بخش می‌فهمید که چرا vim بدرد میخوره و چقدر لذت بخشه کار کردن باهاش، کلی میانبر بانمک هم یاد می‌گیرید.

Oni - tutorials

ترمینال و مرورگر داخلی

مگه ممکنه شما با vim کار کنید ولی به ترمینال دسترسی نداشته باشید؟ توی Oni از طریق پالت فرامین می‌تونید ، ترمینال رو درون ویرایشگر خودتون باز کنید، ترمینال توی Oni متفاوت‌تر از چیزی هست که توی vscode تجربه کردید، چرا که برخلاف vscode از دید Oni فرقی بین ترمینال و یک ویرایشگر متن نیست و شما می‌تونید هرجای صفحه و هر تعداد که بخواید ترمینال داشته باشید.

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

Oni - Internal terminal and browser

تنظیمات

بخش تنظیمات در Oni همانند سابلایم بصورت متنی قایل تغییر است، زمانی که شما منوی Preferences را فشار دهید، دو تب کنار هم برای شما باز می‌شوند که در تب سمت چپ  تنظیمات پیش‌فرق برنامه نمایش داده‌می‌شود و در تب سمت راست شما میتوانید  تنظیمات مورد نظر را بنویسید و مقدار پیش‌فرض آنها را تغییر دهید. توجه  داشته باشید که تب سمت چپ قابلیت ویرایش ندارد و تنها برای مشاهده تنظیمات  پیش‌فرض نمایش داده می‌شود.

Oni Preferences Editor

جا داره در انتها دوباره تاکید کنم که Oni راه زیادی داره تا به نسخه 1 خودش برسه و تا رسیدن به اون نقطه هنگام استفاده ازش بدونید که دارید با نسخه بتا کار می‌کنید، پس اگه باگی دیدید زیاد ناراحت نشید :)