-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
完善 Rime Vim Mode:支持 Linux & 自动切换回中文模式 #85
Comments
linux 的配置文件要写在 fcitx5.custom.yaml 中(如果用的是 fcitx5) 不过 linux 中我遇到一个问题还没解决,就是 看起来是因为 Fcitx5 rime 的 如果可以给 |
@lei4519 ubuntu ibus 下,app_options不生效,好像没有支持?rime/ibus-rime#96 |
默认英文,先删除vmode变量全局使用了。。 |
@IC-killer 没有试过 ibus,Fcitx5 里是可以的 |
全局使用esc回到英文,只保留以下脚本就可以,这似乎对我来说已经足够了,app_options是锦上添花 local function vim_mode(key, env)
if key.keycode == 65307 then
env.engine.context:set_option("ascii_mode", true)
end
return 2
end
return vim_mode 如果我想实现按下 |
可以通过@before 0正常加载了,是写法错误,, |
全局 esc 切英文可以直接配置 jk 切换可以试试 |
2024-05-13
TL;DR
借助
lua_processor
,自行实现vim_mode
的中英文切换逻辑,使其支持:insert mode
时自动切换回中文模式(如果离开时是处于中文模式的话)使用方法
可以参考此 feat: vim_modeI
引入
vim_mode.lua
文件首先将 vim_mode.lua 文件放入自己的
lua
文件夹中,并在rime.lua
中进行导出加入
lua_processor
在自己的中文输入方案中,加入
lua_processor
比如我使用的是小鹤双拼,所以我修改
double_pinyin_flypy.custom.yaml
,加入如下逻辑配置
app_options
在对应平台的
.custom.yaml
中配置在什么应用下启用vmode
比如 macOS 的
squirrel.custom.yaml
实现思路与原因
起因
我觉得
vim_mode
的确是一个非常好的功能,尤其是我这种既要用Obsidian
,又要用Terminal
,偶尔还要用VSCode
的人虽然这些软件中都有类似
im-select
之类的切换插件,但是每个软件中都需要单独安装,且不同的操作系统,配置还可能不一样(比如我自己就在 macOS 和 Linux 下频繁切换)所以如果能有一个 IM 级别的
vim_mode
切换解决方案,那真是再好不过了可是目前的
vim_mode
有两个问题:normal mode
,再进入insert mode
,会保持ascii mode
,而不会自动切换会中文模式im-select
就会自动切换回中文模式思路
搜索之后发现并没有一个现成的解决方案,但是却有大佬写过类似的逻辑,比如
稍微组合一下,就有了本文的解决方案
通过
switches
配置vmode
,再通过app_options
配置在相应应用下打开vmode
,即可实现原生的vim_mode
在指定应用下开启的效果利用
lua_processor
对按键输入进行处理,如果当前应用处于vmode
下,就进行相关的逻辑处理思路如下:
在开启了
vmode
的应用中esc
键,就认为要切换到normal mode
normal mode
,并且按下了i/a/o/c
等会进入插入模式的按键Ref
The text was updated successfully, but these errors were encountered: