این ایمکس دوست داشتنی (تنظیمات ظاهری)

Apr 1, 2013·

5 min read

برای پاک کردن Scroll-bar و Toolbar تنها کافیست توابع‌شان را با یک آرگومان منفی صدا بزنیم. به صورت زیر:

(tool-bar-mode -1)

(scroll-bar-mode -1)

همینطور می‌توان با اختصاص دادن آرگومان منفی به تابعmenu-bar-mode منوی بالای فریم ایمکس را هم حذف کرد. ولی از آن‌جایی که تازه کاریم و هنوز خیلی چیز‌ها هستند که می‌توان با گردش در منو‌ها یاد گرفت‌، از این کار صرف نظر می‌کنیم. خوبی این منوبار این است که عموما‌، بسته‌های بزرگ ایمکس‌، یک منوی اختصاصی برای خودشان آماده می‌کنند و این خیلی می‌تواند در اوایل آشنایی با یک بسته کمک کننده باشد.

رنگ‌بندی پنجره‌ها

یکی از ساده‌ترین راه‌ها برای تعیین رنگ‌بندی پنجرهٔ ایمکس‌، استفاده از قالب‌های آماده است. خوشبختانه در کنار قالب‌های ساده و ساخته شده از روی علاقهٔ شخصی‌، قالب‌هایی نظیر [Solarized](ethanschoonover.com/solarized "Solarized official") و [Zenburn](slinky.imukuppi.org/zenburnpage "Zenburn official") که اهداف خاصی را از رنگ‌بندی‌شان دنبال می‌کنند نیز وجود دارند. برای نصب‌شان تنها کافیست دستور متناسب با نام بسته‌شان را به صورت زیر وارد کنید:

M-x package-install RET solarized-theme RET
M-x package-install RET zenburn-theme RET

جدای از این دستورات با جستجو در package-list-packages می‌توانید هم به این پوسته‌ها و هم به خیل عظیم پوسته‌های آمادهٔ ایمکس دسترسی داشته باشید که تست کردن‌شان خالی از لطف نیست. پس از نصب پوستهٔ مورد نظر‌، کافیست با استفاده از دستور M-x load-theme THEME_NAME آن را فعال کنید. البته از آن‌جایی که دل‌تان نمی‌خواهد بعد از هر بار لود شدن ایمکس‌، مجبور به اجرای این دستور باشید‌، کافیست‌ دستور زیر را در ‎.emacs‌تان قرار دهید:

(load-theme 'zenburn t)

توجه داشته باشید که پوستهٔ Solarized دارای دو حالت تیره و روشن است‌، که شما هم باید در هنگام وارد کردن نامش‌، به این نکته توجه کنید.

رنگ‌بندی با استفاده از ‎.Xresources

روش دیگر‌ تعیین رنگ‌بندی پنجرهٔ ایمکس‌، با استفاده از فایل ‎.Xresources سیستم‌هایی است که از X برای محیط گرافیکی‌شان استفاده می‌کنند. روش کار با این فایل را در [این پست](shahinism.com/blog/1391/08/04/%d8%b9%d8%b4%.. "عشق بازی با ترمینال لینوکس‌ (urxvt, رنگ‌آمیزی و کانفیگش)") توضیح دادم و همینطور ابزار [4bit](ciembor.github.com/4bit "4bit") را برای ایجاد رنگ‌های متناسب با هم معرفی کردم. من خودم فعلا از این روش استفاده می‌کنم که دو دلیل عمده دارد:

  1. رنگ‌بندی برنامه‌هایی که از این سیستم استفاده می‌کنند یک پارچه می‌شوند. هم اکنون پوستهٔ استفاده شده برای ترمینال urxvt و ایمکس‌ام کاملا شبیه به هم است که خیلی خوب است.
  2. پوستهٔ متناسب با سلیقه‌ام را در پوسته‌های آمادهٔ ایمکس پیدا نکردم. Zenburn عالی بود‌، ولی رنگ‌هایش چون چشم‌هایم را خسته نمی‌کردند‌، خودم خسته می‌شدم D: و Solarized هم درخشندگی لازم را برای جلب توجهم نداشت. من عادت به نگاه کردن سر سری نوشته‌ها قبل از خواندن‌شان دارم و برجسته بودن (درخشندگی) رنگ‌های استفاده شده در متن می‌تواند به پیدا کردن نکات جالب توجه کمکم کند.

پوستهٔ ‎.Xresources‌ای که من استفاده می‌کنم را می‌توانید در [این gist](gist.github.com/shahinism/5283609 "My .Xresources configuration on gist") پیدا کنید.

تنظیم Font

بخش حیاتی قضیه است. حداقل برای من یکی‌، جدای از رنگ‌بندی برجسته‌، فونت و یک‌پارچگی‌اش در متن‌، اهمیت زیادی دارد. فونت پیش‌فرض ایمکس‌، اصلا دوست‌داشتنی نیست. اما تنها فونتی است که دیده‌ام در همه حالتی به راحتی جواب می‌دهد. ما هم که به جبر جغرافیا مجبور به استفاده از دو خط و زبانیم‌، باید چاره‌ای برای این قضیه پیدا کنیم. خوشبختانه‌، طی [یک پرسش و پاسخ](stackoverflow.com/questions/11012627/emacs-.. "Emacs font in stackexchange") بین دو دوست عزیزم ([محمد افاضاتی](blog.efazati.org "وبلاگ افاضاتی") و [فرود](cyberrabbits.net "یادداشت‌های بیت نیم‌سوز"))‌، فرود این مشکل را به شیوهٔ جالبی هک (حل) کرده که در ادامه به آن می‌پردازیم.

من برای فونت پیش‌فرض از [Inconsolata](en.wikipedia.org/wiki/Inconsolata "Inconsolata on wikipedia") استفاده می‌کنم که به نظرم برای کد نوشتن عالی است. همین‌طور برای کاراکتر‌های فارسی‌، از فونت tahoma استفاده می‌کنم. بله‌، بله می‌دانم که الان می‌گویید که [قبلا](shahinism.com/blog/1391/06/10/css-persian%e.. "CSS Persian‌، یک ایدهٔ ساده ولی خیلی مفید") گفته‌ای tahoma فیلان‌، tahoma بیسار! بله‌، هنوز هم می‌گویم. ولی tahoma تنها فونت فارسی‌ای است که در اندازهٔ کوچک (8pt) ‌این‌قدر خوب قابل خواندن است و از قرار با فونت‌های مناسب کد‌نویسی‌، هم‌نشینی خوبی دارد! (باشد که به غیرت آن‌ها که زور طراحی فونت مناسب را دارند بر بخورد و دست به کار شوند) برای اعمال فونت‌ها به صورت زیر عمل می‌کنیم:

(set-default-font "Inconsolata-10")



(set-fontset-font
   "fontset-default"
   (cons (decode-char 'ucs #x0600) (decode-char 'ucs #x06ff)) ; arabic
   "Tahoma-8")

در خط اول‌، همان‌طور که معلوم است‌، فونت Inconsolata با سایز 10 را به عنوان فونت پیش‌فرض قرار دادیم. در ادامهٔ قضیه هم برای محدوده کاراکتر‌های عربی یونیکد‌، فونت Tahoma با سایز 8 را برای نمایش انتخاب کردیم. نتیجهٔ کار‌، فوق‌العاده قابل قبول است.

برجسته کردن خط حاضر و شماره خط‌ها

یکی از ویژگی‌های به درد بخور ویرایشگر‌های جدید‌، شمارهٔ خط‌هاست که در سمت چپ‌شان نوشته می‌شود. در حین توسعهٔ برنامه‌های پایتونی‌، مزیت این شماره‌ها کاملا مشهود است. این است که با اضافه کردن این دستور به ‎.emacs آن‌ها را به ایمکس‌مان اضافه می‌کنیم:

(global-linum-mode 1)

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

(global-hl-line-mode t)

(set-face-background 'hl-line "#000")

در خط اول اعلام می‌کنیم که ویژگی برجسته کردن خط حاضر را فعال کن. بسیاری از قالب‌های آماده‌، مقداری برای رنگ پس زمینهٔ این خط تعیین می‌کنند. اما از آن‌جایی که من با استفاده از ‎.Xresources رنگ‌بندی قالب را تعیین کرده‌ام‌، باید این کار را به صورت دستی انجام دهم (خط دوم). نکته این‌جاست که ممکن است قالب‌تان رنگ خوبی برای‌تان نگذاشته باشد که باز هم می‌توانید با همین خط دوم ترتیبش را بدهید.