有没有办法让IdeaVim在输入以外的模式下理解俄语布局?在我的.
vimrc中我有
set keymap=russian-jcukenwin
所以我可以通过按Ctrl +切换VIM中的语言,并且相对满意.但似乎IdeaVim没有阅读或理解这个设置.用俄语停止键入某些内容(例如注释),切换到命令模式并卡住会非常烦人.有没有解决方法?
解决方法
首先我尝试使用像这个
gist中的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 Ё \|
但我忘记了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在正常,视觉选择和运算符待定模式下使用西里尔文布局.