IdeaVim和俄罗斯布局

Ale*_*kov 8 vim keyboard-layout ideavim

有没有办法让IdeaVim在输入以外的模式下理解俄语布局?在我的.vimrc中我有

set keymap=russian-jcukenwin
Run Code Online (Sandbox Code Playgroud)

所以我可以通过按Ctrl + ^来切换VIM中的语言,并且相对满意.但似乎IdeaVim没有阅读或理解这个设置.用俄语停止键入某些内容(例如注释),切换到命令模式并卡住会非常烦人.有没有解决方法?

mix*_*xel 9

首先,我尝试使用langmap像这个要点,但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 ? \|
Run Code Online (Sandbox Code Playgroud)

您可以为键盘布局自定义它.

但是我忘了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 ? /|
Run Code Online (Sandbox Code Playgroud)

现在我让IdeaVim在正常,可视+选择和操作员待定模式下使用西里尔文布局.