Сначала я попытался использовать langmap
, как в этом gist, но IdeaVim не поддерживает langmap
.
Далее я попытался использовать map
, так что я сделал это решение:
let rumap = 'йцукенгшщзхъфывапролджэёячсмитьбюЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ'
let enmap = 'qwertyuiop[]asdfghjkl;''\zxcvbnm,.QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>'
let mapLen = strchars(rumap)
let i = 0
while i < mapLen
let ruChar = matchstr(rumap, ".", byteidx(rumap, i))
let enChar = enmap[i]
"echo 'map '.ruChar.' '.enChar
execute 'map '.ruChar.' '.enChar
execute 'cmap '.ruChar.' '.enChar
let i += 1
endwhile
map Ё \|
cmap Ё \|
Вы можете настроить его для раскладки клавиатуры.
Но я забыл, что IdeaVim не поддерживает vimscript и cmap
и я добавил echo 'map '.ruChar.' '.enChar
(комментируемую строки), прилагаемый код сверху .vimrc
и открыл Vim из командной строки, так что напечатанный мне все map
команд. Я добавил их к .ideavimrc
и приложенному картированию трубы (|) характер:
map й q
map ц w
map у e
map к r
map е t
map н y
map г u
map ш i
map щ o
map з p
map х [
map ъ ]
map ф a
map ы s
map в d
map а f
map п g
map р h
map о j
map л k
map д l
map ж ;
map э '
map ё \
map я z
map ч x
map с c
map м v
map и b
map т n
map ь m
map б ,
map ю .
map Й Q
map Ц W
map У E
map К R
map Е T
map Н Y
map Г U
map Ш I
map Щ O
map З P
map Х {
map Ъ }
map Ф A
map Ы S
map В D
map А F
map П G
map Р H
map О J
map Л K
map Д L
map Ж :
map Э "
map Я Z
map Ч X
map С C
map М V
map И B
map Т N
map Ь M
map Б <
map Ю >
map Ё /|
Теперь у меня есть IdeaVim работать с кириллицей макетом в нормальном, наглядных + выбрать и операторные в ожидании режимов.
Спасибо, это работает для меня! Ну, почти. Я понял, что комбинации типа 'ciw' или' daw' все еще не работают. Похоже, что 'i' и' a' обрабатываются неправильно, когда используются как «внутри» и «вокруг». Любые идеи, как это можно исправить? –
Эти комбинации не работают для меня тоже :(Я еще не нашел решение. Если вы затем разместите его здесь. – mixel
Спасибо большое! Я добавил, что кодировка должна быть ANSI – zhekaus