有什么方法可以让 IdeaVim 在输入以外的模式下理解俄罗斯布局?在我的 .vimrc 我有
set keymap=russian-jcukenwin
所以我可以通过按 Ctrl+^ 在 VIM 中切换语言,并且对此比较满意。但似乎 IdeaVim 没有阅读或理解此设置。停止用俄语输入一些东西(例如评论),切换到命令模式并卡住可能非常烦人。有什么解决方法吗?
有什么方法可以让 IdeaVim 在输入以外的模式下理解俄罗斯布局?在我的 .vimrc 我有
set keymap=russian-jcukenwin
所以我可以通过按 Ctrl+^ 在 VIM 中切换语言,并且对此比较满意。但似乎 IdeaVim 没有阅读或理解此设置。停止用俄语输入一些东西(例如评论),切换到命令模式并卡住可能非常烦人。有什么解决方法吗?
首先我尝试langmap
在这个要点中使用 like但 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 在正常、视觉+选择和操作员挂起模式下使用西里尔文布局。
您可以安装Fcitx和IdeaVimExtension。
将以下行添加到您的~/.ideavimrc
:
set keep-english-in-normal-and-restore-in-insert
IDE 会在普通模式下切换到英文,并在插入模式下恢复之前的输入语言。
在 Ubuntu Gnome ( Fcitx - ArchWiki )上安装和配置 Fcitx :
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.
Привіт!简短的回答是否定的,没有解决方法。除非你愿意修改 IdeaVim。
按下某个键时,可以获得有关该事件的不同信息。对于我们的案例,最有趣的部分是hardware key code
和key value
。前者对于位于同一个键上的s、ы和是相同的;і后者因布局而异。由于 IdeaVim使用键值进行绑定(并且在设置中动作也绑定到键值),因此在使用键值不同的布局时不可能触发动作。因此,例如,它将在德国布局中运行良好。
我建议你无论如何都不要用俄语写评论。