Автор Гілка: розкладка клавіатури VIM  (Прочитано 11112 раз)

Відсутній Сергій Лисовенко

  • Літератор
  • ******
  • дописів: 1489
  • Карма: +0/-0
В користувачів 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
в ній використовуються "сліпі клавші" для введення додаткових літер: тиснем "=" потім "г" і отримуєм "ґ" (чомусь вирішив звільнити бекслеша, хоча набіса він мені...).
Якщо Лінукс написали студенти - нехай вони під ним і навчаються.

Відсутній bdmbdsm

  • Новачок
  • *
  • дописів: 1
  • Карма: +0/-0
  • Python розробник. Живу у Львові, люблю Linux.
Re: розкладка клавіатури VIM
« Відповідей #1 : 2020-04-30 11:24:29 »
Дякую за інструкцію!
Оці рядки дуже допомогли:

set iminsert=0 " Встановити англійську (i_ctrl-^)
set imsearch=0

Відсутній Olehxandra

  • Новачок
  • *
  • дописів: 2
  • Карма: +0/-0
Re: розкладка клавіатури VIM
« Відповідей #2 : 2020-05-19 19:53:57 »
Дуже дякую. Є така проблема.

А: Переклав
« Змінено: 2020-05-19 20:43:43 від Михайло Даниленко »