این ایمکس دوست داشتنی (ergoemacs-mode)

·

4 min read

سخت‌تر از همه این که به QWERTY وابسته‌اند. آن وقت است که اگر به [Workman](shahinism.com/blog/1392/01/14/%da%86%db%8c%.. "چینش (لایوت) Workman و داستان مهاجرتم") یا Colemak سوئیچ کنید‌، انگار به کیبورد‌تان دینامیت بسته‌اید! از آن بد‌تر این که با کاراکتر‌های فارسی کار نمی‌کنند.

این مقدمه را گفتم که بگویم‌، عده‌ای جمع شده‌اند و مدی ساخته‌اند به اسم [ergoemacs-mode](ergoemacs.org/index.html "Ergoemacs official page") که هدفش حل مشکلات ذکر شده در مقدمهٔ بالاست. نتیجه‌، از عکس زیر معلوم است:

ergoemacs-mode رو چینش workman ergoemacs-mode رو چینش workman

این عکس طبق چینش Workman تولید شده‌،‌ ولی جای دکمه‌ها در لایوت‌های دیگر‌، از جمله QWERTY و Colemak هم یک‌سان است. از نکات مهم مد نظر قرار داده شده در هنگام طراحی این Key binding‌ها می‌توان به موارد زیر اشاره کرد:

  • کلید‌های Home row بهترین‌ها هستند.
  • Alt خیلی بهتر از Ctrl است. Alt را باید با شصت گرفت که زورش خیلی بیشتر از انگشت کوچیکهٔ مخصوص Ctrl است!
  • به جای سرحرف اول دستورات‌، بهتر است به مکان دستورات هم خوانواده توجه شود. مثلا به مکان کلید‌های جاب‌جایی نگاه کنید. همین‌طور کلید‌های پاک کردن را ببینید!
  • و چند‌تای دیگر که آن‌قدرها هم مهم نیستند.

نکته این‌جاست که نتیجهٔ کار خیلی عالی شده. آن‌قدر عالی که طی رد و بدل چند ایمیل‌ در [لیست ایمیل](groups.google.com/group/ergoemacs "ergoemacs mailing list") پروژه‌، زبان فارسی را هم به این مجموعهٔ کامل اضافه کردیم که نتیجه‌اش را در زیر می‌بینید:

ergoemacs-mode روی چینتش استاندارد فارسی ergoemacs-mode روی چینتش استاندارد فارسی

کیبورد استاندارد فارسی است که به صورت پیش‌فرض در لینوکس وجود دارد‌، ولی ویندوزی‌ها باید برنامهٔ متناسبش را پیدا و نصب کنند تا پشتیبانی شود D:

نصب

طبق [آن‌چه که در گذشته گفتم‌](shahinism.com/blog/1392/01/08/%d8%a7%db%8c%.. "این ایمکس دوست داشتنی (مدیر بسته)")، ergoemacs-mode را از مدیر‌بسته‌های ایمکس نصب کنید و سپس تنظیمات زیر را به فایل ‎.emacs‌‌تان اضافه کنید:

(setenv "ERGOEMACS_KEYBOARD_LAYOUT" "workman")

(require 'ergoemacs-mode)

(ergoemacs-mode 1)

در خط اول‌، اسم لایوت پیش‌فرض را اضافه می‌کنیم‌، و در خط‌های بعد ergoemacs-mode را فراخوانی و فعال می‌کنیم. بعد از یک Restart‌، با کلید‌های جدید روبرو می‌شوید D:

گرفتن کمک

خوب یک تغییر عادت است و احتمالا اول کار خیلی پیش می‌آید که دستورات قبلی‌تان را بزنید و نتیجه نگیرید! برای پیدا کردن کلید‌های جدید‌، کافیست C-h o را وارد کرده و سپس کلید قبلی‌تان را وارد کنید. این تابع بعد از بررسی کلید‌های قدیمی‌، هم‌تایان جدید‌شان را معرفی می‌کند.

دیگر سطوح

یکی از ویژگی‌های ergoemacs-mode‌، قابلیت تعیین سطحش است. سطوح مختلفی که با توجه به سلیقه‌های مختلف کاربران طراحی شده است. مثلا سطح guru کلید‌های فلش را برای تغییر موقعیت نشانگر می‌بندد و بعد از هر بار زدنشان‌، کلید‌های متناسب با سلیقهٔ ایمکس را نشان‌تان می‌دهد. و یا سطح master (فکر کنم) کلید backspace را خاموش می‌کند تا مجبور شوید از روش‌های پاک کردن کاراکتر ایمکس بهره بگیرید که سریع‌تر است. برای تنظیم این ویژگی‌ها کافیست سطح مورد نظر را انتخاب کنید (بعد از نصب ergoemacs از منو انتخابش کنید و ergoemacs variants را ببینید) و در دستور(setq ergoemacs-variant "SATH") آن را در جای SATH قرار دهید.

ergoemacs-extras

با فراخوانی این تابع در ایمکس‌، ergoemacs اقدام به ایجاد فایل‌های راهنمای کیبورد ergo در سطوح مختلف به فرمت svg می‌کند که می‌تواند خیلی کمک کننده باشد (عکس‌های موجود در این نوشته هم با همین روش ایجاد شده‌اند.). همین‌طور فایل‌هایی برای تطابق این کلید‌ها با محیط‌های دیگر از جمله bash ایجاد می‌شود که می‌توانند در ایجاد یک‌پارچگی برای محیط کار عالی باشند. (هنوز امتحانش نکرده‌ام ولی نتیجه‌اش را به زودی اطلاع می‌دهم.)

این فایل‌ها در مسیر ‎~‎‍/.emacs/ergoemacs-extras در دسترسند که با توجه به سطوح مختلف پوشه‌بندی شده‌اند.

نتیجه

به نظر من نتیجهٔ کار فوق‌العاده قابل قبول است. راحتی استفاده از کلید‌های پر کاربرد و راحت‌تر از آن معکوس کردن اکثر دستورات با Shift فوق‌العاده کمک می‌کند. به طور پیش‌فرض برای خیلی کار‌ها مجبوریم در ایمکس از ارسال آرگومان به دستورات برای تغییر حالت‌شان استفاده کنیم که در Ergoemacs این کار عموما با Shift انجام می‌گیرد. مثلا C-f جستجوی رو به جلو انجام می‌دهد و C-S-f جستجوی رو به عقب!

از طرفی کلید‌های C-a که در تمام محیط‌های دیگر برای انتخاب کل محتویات صفحه است و یا کلید‌های C-z, C-x, C-c, C-v, C-f, C-o, C-s, C-s-s , و خیلی کلید‌های دیگر که در محیط‌های دیگر از آن‌ها بهره می‌گیریم‌، به راحتی در این‌جا نیز جواب می‌دهند و کار ویرایش را فوق‌العاده راحت‌تر کرده‌اند. حتی با Ergoemacs دستور جدیدی اضافه شده که می‌توان با C-n یک صفحهٔ جدید ساخت‌، بدون این که نیاز به افزودن نامی به آن داشته باشیم.

یک قابلیت جالب دیگر‌، استفاده از کلید‌های yanking‌ (کپی پیست در ایمکس) بدون Region (متن انتخاب شده) است. در این صورت‌، دستورات کل خط یا صفحه را تحت تاثیر قرار می‌دهند.

در آینده بیشتر هم در مورد ergoemacs حرف می‌زنیم.