للغة العربية Vim


أستخدمُ محرر النصوص Vim حصراً في كتابة البرمجيات وأحاول استخدام آداة واحدة لكل وظيفة. فلذلك؛ لا يوجد على حاسوبي الشخصي أكثر من برنامج لآداء نفس الوظيفة. ومن ذلك المنطلق، أستخدمُ Vim في كتابة وتحرير المقالات على مدونتي ومنها المقالات باللغة العربية (المقال الذي تقرؤه الآن مكتوبٌ باستخدام Vim).

المشكلة أن الإعدادت الأساسية أو الافتراضية ل Vim غير معدّة للكتابة باللغة العربية. فمثلاً اتجاه النص في Vim يسري من الشِّمال إلى اليمين. الصورة التالية لشكل النص العربي في Vim حيث تظهر الحروف معكوسة:

Vim ltr view

الحل؟

يوجد في Vim طريقة أو إعداد لتغيير اتجاه النص ليتجه من اليمين إلى الشمال. الإعداد المقصود هو leftright أو rl:

:set leftright   "OR :set lr

لتبديل اتجاه النص بين اليمين إلى الشمال والعكس، يمكن إضافة ! للقاعدة السابقة فتصبح:

:set leftright!   "OR :set lr!

الآن، يمكننا أن نضع اختصاراً لتبديل اتجاه النص بإضافة السطرين التاليين إلى ملف إعدادت Vim:

"~/.vimrc

"The Leader
let mapleader="\<Space>"

"toggle RTL mode
nnoremap <silent> <leader>l :set rl!<cr>

في Vim، يوجد ما يسمى بــ “Leader key” أو المفتاح الأساسي؛ وهو مفتاح يمكن إضافة مجموعة من المفاتيح الأخرى إليه وتشكيل العديد من الاختصارات لآداء مختلف الوظائف.

بالنسبة لي، أفضّل استخدام مفتاح المسافة كمفتاحٍ أساسي في Vim لتوسطه لوحة المفاتيح ولسهولة الوصول إليه. لذلك فالاختصار السابق يمكننّا من تبديل اتجاه النص بالضغط على مفتاح المسافة مع مفتاح حرف “L”.

ينبغي أن أنوّه عن وجود إعدادٍ بديٍل ل leftright وهو arabic. في الواقع، الخيار arabic يقوم بتفعيل rightleft بالإضافة إلى خياراتٍ أخرى. راجع صفحة الإعداد في Vim:

:h arabic

الإعداد arabic يقوم بتغيير لوحة المفاتيح إلى العربية كما يسمح باستخدام حركات Vim مع لوحة المفاتيح العربية. لذلك، فلا حاجة للتغيير إلى الإنجليزية من أجل الدخول في وضع الكتابة (Insert mode) ثم التغيير إلى العربية مرة أخرى لبدء الكتابة. كما يسمح Vim بالتبديل بين العربية والإنجليزية من خلال الضغط على CTRL + ^ (مفتاح رقم ٦).

يمكننا تغيير القاعدة السابقة واستبدالها بالتالي:

"~/.vimrc

"The Leader
let mapleader="\<Space>"

"toggle Arabic mode
nnoremap <silent> <leader>l :set arabic!<cr>

والنتيجة:

Vim RTL view

قد لا تكون النتيجة مرضية بشكلٍ كامل لعدم دعم Vim للنصوص متعددة الاتجاه (bidirectional text) أو لعدم دعم برنامج سطر الأوامر (Terminal client) للغة العربية من الأساس.

على أية حال، يمكنك الاطلاع على إعداداتي الخاصة ب Vim على Github.