有时我使用Vim来写非美国文本,当我想在正常模式下使用任何命令时,我需要将布局更改为美国。有可能自动完成吗?
PS.我可以像this一样进行Map,但在这种情况下,命令看起来像:w-not pretty and typo-risk。
更新
我不想使用键Map选项,因为我更喜欢通过CapsLock切换语言。我尝试为InsertLeave事件编写autocmd,但失败.
更新2
也许有人知道,为什么下面的不工作?
function SetUsLayout()
!setxkbmap us,ru
endfunction
autocmd InsertLeave * call SetUsLayout()
5条答案
按热度按时间9o685dep1#
可能会提供你需要的所有信息
sqserrrh2#
看起来,跨平台解决方案不存在...在KDE下,我使用以下命令:
t5fffqht3#
对我来说,使用qdbus是最好的选择。我做了一个简单但脆弱的插件,对我来说效果很好:https://github.com/ironhouzi/bikey-vim/tree/master/plugin
我称之为脆弱的,因为如果其他人想使用它,它没有太多的鲁棒性。
我在使用Vim的时候主要是想使用英语,只有少数例外。当我想用我的母语写的时候,我点击“leader”-k,我的航空公司状态栏就会显示我已经切换了语言。当语言不是英语时,脚本将确保每次我进入插入模式时,都通过qdbus设置我的母语。每次我离开插入模式时,语言都被设置回英语。它还支持缓冲区之间的单独设置。即使这可能不是最好的做事方式,我想我会分享它,以防别人可能会从中得到一些用处。
oewdyzsn4#
在Arch中,可以对nvim\vim执行以下操作:
z0qdvdin5#
在Ubuntu中,我使用以下命令:
或更短: