Is there any way to make IdeaVim understand russian layout in modes other than Input? In my .vimrc I have
set keymap=russian-jcukenwin
so I can switch languages in VIM by pressing Ctrl+^ and relatively happy with that. But it seems that IdeaVim doesn't read or understand this setting. It can be very annoying to stop typing something (for example comment) in russian, switch to command mode and stuck. Is there any workaround?
First i tried to use langmap
like in this gist but IdeaVim does not support langmap
.
Next I tried to use map
so I made this solution:
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 Ё \|
You can customize it for your keyboard layout.
But I forgot that IdeaVim does not support vimscript and cmap
and I added echo 'map '.ruChar.' '.enChar
(commented line), appended code from above to .vimrc
and opened vim from command line so it printed me all map
commands. I added them to .ideavimrc
and appended mapping of pipe (|) character:
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 Ё /|
Now I have IdeaVim working with cyrillic layout in normal, visual+select and operator-pending modes.
You can install Fcitx and IdeaVimExtension.
Add the following line to your ~/.ideavimrc
:
set keep-english-in-normal-and-restore-in-insert
IDE will switch to English in normal mode and restore the previous input language in insert mode.
Installing and configuring Fcitx on Ubuntu Gnome (Fcitx - ArchWiki):
sudo apt install fcitx
~/.pam_environment
file with the following contents:XMODIFIERS DEFAULT=@im=fcitx
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE DEFAULT=fcitx
For Vim you may want to install fcitx.vim plugin.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With