В користувачів VIM іноді виникає проблема при роботі з кириличними файлами: перемкнув розкладку клавіатури і редактор в командному режимі починає "мило" пищати замість виконувати очікувані операції. Для усунення цієї проблеми давно існує простий спосіб: змінити розкладку в самому VIM-і, а не в консолі чи іксах.
для цього можна в ~/.vimrc написати
set keymap=ukrainian-jcuken
set iminsert=0 " Встановити англійську (i_ctrl-^)
set imsearch=0
тепер в режимі вставки можна натиснути i_ctrl-^ (контрол + шість) і VIM почне вводити українські букви (фіча: спробуєте вставити мишкою текст --- цого "транслітерує" відповідно до вашої розкладки, тобто не забувайте вимикати український режим вводу
)
Файли з розкладками зазвичай містяться в директорії /usr/share/vim/vim*/keymap
Звичайно, ви можете скласти свою кеймапу за зразком, взятим з довільного файлу з цієї директорії (взяти найбільш підходячий і переробити). На жаль, мені так і не вдалось дізнатись, як підвантажити файл розкладки без прав рута, тому якщо у вас не повністю підконтрольна система і ви хочете встромити власну розкладку -- доведеться плакатись адміну
або знайти спосіб це зробити (обійтись без прав надкористувача) і написати тут
Нижче наведено приклад моєї самопалки:
" Vim Keymap file for ukrainian characters, layout 'jcuken', MS Windows variant
" (slightly incompatible with XFree86 'ru' keymap - makes use of NUMERO SIGN)
" Useful mainly with utf-8 but may work with other encodings
" Last Changed: 2001 Jun 23
" All characters are given literally, conversion to another encoding (e.g.,
" UTF-8) should work.
scriptencoding utf-8
let b:keymap_name = "uk"
loadkeymap
` '
F А CYRILLIC CAPITAL LETTER A
< Б CYRILLIC CAPITAL LETTER BE
D В CYRILLIC CAPITAL LETTER VE
U Г CYRILLIC CAPITAL LETTER GHE
L Д CYRILLIC CAPITAL LETTER DE
T Е CYRILLIC CAPITAL LETTER IE
: Ж CYRILLIC CAPITAL LETTER ZHE
P З CYRILLIC CAPITAL LETTER ZE
B И CYRILLIC CAPITAL LETTER I
Q Й CYRILLIC CAPITAL LETTER SHORT I
R К CYRILLIC CAPITAL LETTER KA
K Л CYRILLIC CAPITAL LETTER EL
V М CYRILLIC CAPITAL LETTER EM
Y Н CYRILLIC CAPITAL LETTER EN
J О CYRILLIC CAPITAL LETTER O
G П CYRILLIC CAPITAL LETTER PE
H Р CYRILLIC CAPITAL LETTER ER
C С CYRILLIC CAPITAL LETTER ES
N Т CYRILLIC CAPITAL LETTER TE
E У CYRILLIC CAPITAL LETTER U
A Ф CYRILLIC CAPITAL LETTER EF
{ Х CYRILLIC CAPITAL LETTER HA
W Ц CYRILLIC CAPITAL LETTER TSE
X Ч CYRILLIC CAPITAL LETTER CHE
I Ш CYRILLIC CAPITAL LETTER SHA
O Щ CYRILLIC CAPITAL LETTER SHCHA
=} Ъ CYRILLIC CAPITAL LETTER HARD SIGN
} Ї CYRILLIC CAPITAL LETTER YI
=S Ы CYRILLIC CAPITAL LETTER YERU
S І CYRILLIC CAPITAL LETTER YERU
M Ь CYRILLIC CAPITAL LETTER SOFT SIGN
=\" Э CYRILLIC CAPITAL LETTER E
\" Є CYRILLIC CAPITAL LETTER E
> Ю CYRILLIC CAPITAL LETTER YU
Z Я CYRILLIC CAPITAL LETTER YA
f а CYRILLIC SMALL LETTER A
, б CYRILLIC SMALL LETTER BE
d в CYRILLIC SMALL LETTER VE
u г CYRILLIC SMALL LETTER GHE
l д CYRILLIC SMALL LETTER DE
t е CYRILLIC SMALL LETTER IE
; ж CYRILLIC SMALL LETTER ZHE
p з CYRILLIC SMALL LETTER ZE
b и CYRILLIC SMALL LETTER I
q й CYRILLIC SMALL LETTER SHORT I
r к CYRILLIC SMALL LETTER KA
k л CYRILLIC SMALL LETTER EL
v м CYRILLIC SMALL LETTER EM
y н CYRILLIC SMALL LETTER EN
j о CYRILLIC SMALL LETTER O
g п CYRILLIC SMALL LETTER PE
h р CYRILLIC SMALL LETTER ER
c с CYRILLIC SMALL LETTER ES
n т CYRILLIC SMALL LETTER TE
e у CYRILLIC SMALL LETTER U
a ф CYRILLIC SMALL LETTER EF
[ х CYRILLIC SMALL LETTER HA
w ц CYRILLIC SMALL LETTER TSE
x ч CYRILLIC SMALL LETTER CHE
i ш CYRILLIC SMALL LETTER SHA
o щ CYRILLIC SMALL LETTER SHCHA
=] ъ CYRILLIC SMALL LETTER HARD SIGN
] ї CYRILLIC SMALL LETTER HARD SIGN
=s ы CYRILLIC SMALL LETTER YERU
s і CYRILLIC SMALL LETTER YERU
m ь CYRILLIC SMALL LETTER SOFT SIGN
=' э CYRILLIC SMALL LETTER E
' є CYRILLIC SMALL LETTER E
. ю CYRILLIC SMALL LETTER YU
z я CYRILLIC SMALL LETTER YA
=u ґ
=U Ґ
=E Ў
=e ў
=T Ё
=t ё
@ "
# № NUMERO SIGN
$ ;
^ :
& ?
/ .
? ,
" До .vimrc дописуєм :
" set keymap=ukrb
" set iminsert=0 " Встановити англійську (i_ctrl-^)
" set imsearch=0
в ній використовуються "сліпі клавші" для введення додаткових літер: тиснем "=" потім "г" і отримуєм "ґ" (чомусь вирішив звільнити бекслеша, хоча набіса він мені...).