IdeaVim与俄罗斯版式
有没有办法让IdeaVim在输入以外的模式下理解俄语布局?在我的vimrc里,我有IdeaVim与俄罗斯版式,vim,keyboard-layout,ideavim,Vim,Keyboard Layout,Ideavim,有没有办法让IdeaVim在输入以外的模式下理解俄语布局?在我的vimrc里,我有 set keymap=russian-jcukenwin 所以我可以通过按Ctrl+^在VIM中切换语言,并且对此比较满意。但IdeaVim似乎并不阅读或理解这种设置。停止用俄语输入某些东西(例如评论),切换到命令模式并卡住,这可能会非常烦人。有什么解决办法吗 Пцціцццц!简而言之,答案是否定的,没有解决办法。除非你愿意修改IdeaVim 当按下某个键时,可以获得有关该事件的不同信息。在我们的例子中,最有
set keymap=russian-jcukenwin
所以我可以通过按Ctrl+^在VIM中切换语言,并且对此比较满意。但IdeaVim似乎并不阅读或理解这种设置。停止用俄语输入某些东西(例如评论),切换到命令模式并卡住,这可能会非常烦人。有什么解决办法吗 Пцціцццц!简而言之,答案是否定的,没有解决办法。除非你愿意修改IdeaVim 当按下某个键时,可以获得有关该事件的不同信息。在我们的例子中,最有趣的部分是
硬件密钥代码
,以及密钥值
。前者与位于同一钥匙上的s、і和і相同;后者因布局而异。由于绑定的IdeaVim(在设置中,动作也绑定到键值),因此在使用键值不同的布局时不可能触发动作。因此,例如,它将在德国布局中运行良好
我建议你无论如何不要用俄语写评论 首先,我尝试像这样使用
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在正常、可视+选择和操作员挂起模式下使用西里尔文布局。您可以安装和安装
将以下行添加到您的~/.ideavimrc
:
set keep-english-in-normal-and-restore-in-insert
IDE将在正常模式下切换为英语,并在插入模式下恢复以前的输入语言
在Ubuntu Gnome()上安装和配置Fcitx:
sudo apt Install fcitx安装
~/.pam_环境
文件:对于Vim,您可能需要安装插件。谢谢,它适合我!嗯,差不多了。我意识到像
ciw
或daw
这样的组合仍然不起作用。当用作“内部”和“周围”时,i
和a
似乎处理不正确。有什么办法可以解决这个问题吗?这些组合对我来说也不太合适:(我还没有找到解决方案。如果你愿意的话,请把它贴在这里。非常感谢!我补充说编码应该是ANSI
set keep-english-in-normal-and-restore-in-insert
XMODIFIERS DEFAULT=@im=fcitx
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE DEFAULT=fcitx