کارکردن با نوشتار پارسی در ویم
طبیعتا شما میتوانید با تغییر زبان کیبورد خود به هر زبانی که میخواهید در ویم تایپ کنید، اما قابلیت استفاده از دستورات ویم را از دست میدهید و برای مثال چنانچه از اینسرت مود خارج شوید دیگر با زدن کلید i
به آن باز نمیگردید.
راه حل این مسئله استفاده از کیبورد فارسی داخلی ویم است.
دستور زیر را در مود خط فرمان ویم وارد کنید:
:echo $VIMRUNTIME
/usr/share/vim/vim90/
cd /usr/share/vim/vim90
ls
پوشهها و فایلهای موجود را بررسی کنید.
باید یک پوشه به نام keymaps ببینید.
با دستور زیر از وجود فایل کیبورد فارسی برای ویم اطمینان حاصل کنید:
find keymaps -type f -name '*persian*'
find /usr/share/vim/vim90 -type f -name '*persian*'
:set keymap=persian
برای تغییر کیبورد به انگلیسی از دستور زیر استفاده میکنیم:
:set keymap=
inoremap <C-f> <C-o>:set keymap=persian<cr>
inoremap <C-e> <C-o>:set keymap= <cr>
inoremap <leader>f <C-o>:set keymap=persian<cr>
inoremap <leader>e <C-o>:set keymap= <cr>
\
است.
اکثر کاربران این کلید لیدر را به اسپیس تغییر میدهتد.
let mapleader =" "
نکاتی درمورد ترمینال
اگر بهصورت مداوم با متون پارسی سروکار دارید، حتما از یک ترمینال مناسب استفاده کنید. ترمینالهای VTE و ترمینالهای شناخنه شده، ساپورت مناسبی برای نوشتار راست به چپ دارند. لیستی از ترمینالهای خوب در پایین آورده شده است.- Xterm
- Xfce4-terminal
- Konsole
- Roxterm
- Blackbox
- Gnome-terminal
- Terminator
- Lxterminal
- Qterminal
- Sakura
فونتهای مناسب برای هر دو نوشتار پارسی و انگلیسی
فونتهای زیر عملکرد مناسبی در هردو نوشتار راست به چپ و چپ به راست دارند. در اکثر مواقع فونت پیشفرض monospace سیستم برای بیشتر سناریو ها مناسب است. با استفاده از دستور زیر میتوانید ببینید که فونت پیشفرض مونو سیستم شما کدام فونت است.fc-match monospace
خروجی این دستور در سیستم نگارنده به شکل زیر است:
NotoSansMono-Regular.ttf
پکیج noto-fonts
در اکثر سیستمها بصورت پیشفرض نصب است. چنانچه این پکیج را نصب ندارید یا سیستم شما به فونت دیگری برای مونو فالبک میکند (برای مثال فونت روبوتو)، میتوانید فونت مونو سیستمی را تغییر دهید. برای این کار به دستورالعمل توزیع خود مراجعه کنید.
برای مواردی که در tty نیاز به فونت مناسب فارسی دارید، فونت terminus ساپورت مناسبی از گلیفهای فارسی دارد.
call matchadd('Conceal', '\%u200c', 10, -1, {'conceal':'|'})
set conceallevel=2 concealcursor=nv