ssh中远程vim自动切本地输入法

简介

SshIM 是一个解决ssh中使用vim/nvim 中文输入法自动切换插件。

原理:当ssh中使用的vim 进入insert模式或者离开insert模式,都会触发一个事件。当触发事件以后,通过http的方式通知我们的电脑,我们的电脑会自动切换英文输入法,或者切换中文输入法。
项目地址:
https://github.com/lxyoucan/sshim.vim

插件安装

这里以packer为例,packer插件管理器安装方法:
修改~/.config/nvim/lua/plugins.lua文件,并增加如下内容:

 -- ssh远程vim自动切换本地输入法
 use "lxyoucan/sshim.vim"

:wq退出重新打开nvim后,执行:PackerInstall 安装。

服务器端

这里提供一个思路,不同的操作系统和输入法框架在输入法切换这块是不同的。
精力有限,我这里提供的服务器仅支持macOS系统。其他操作系统理论上也可以。

简明教程

测试环境:macOS Big Sur 版本11.4 Intel版本
解压ssh远程vim切换本地输入法工具macOS版20220105(自带JRE推荐非Java开发人员使用).zip
此文件下载,点这里

首次使用,请自行修改./startDing.sh文件中的imchangerdemo1,修改成一个不会与大家重复的字符串,如果出现重置就会穿透失败。随便写一个长点的字符串一般没有什么问题。

然后执行

./startALL.sh

根据提示查看一下ding的日志,如下:

#根据自己的路径调整
tail -f /Users/itkey/inputMethodChanger/./ding/catalina.out

日志大概如下:
[16:07:14 CST 2022/01/05] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [client] Authenticated with server, client id: fe081dcb966481f101c57e97e82d5fa3
[16:07:14 CST 2022/01/05] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [client] Tunnel established at
http://imchangerdemo1.vaiwan.com
[16:07:15 CST 2022/01/05] [INFO] (ngrok/log.Info:112) No update available

其中http://imchangerdemo1.vaiwan.com部分就是内网穿透的地址,可以在外网访问你的本地输入法切换服务器,就是通过这个地址来切换输入法。

配置

"服务器端地址,形如:http://localhost:8088 最后一个字符不要带/
let g:sshim_url = 'http://localhost:8088'
"0启用插件,1禁用插件,默认为0 
let g:sshim_disable = 0

当你使用宏的时候,或者出现短时间内频繁 insert 与normal模式切换的时候,可以通过let g:sshim_disable = 1来禁用输入法切换插件来提醒执行效率。

实现原理

  • 从insert模式切换到normal模式插件会自动请求服务器的/insertLeave地址
  • 从normal模式切换到insert模式插件会自动请求服务器的/insertEnter地址

服务器部署在你正在使用的电脑上面,这样你的电脑就能接收到当前的vim状态了,根据这个状态通过一些工具来切换本地的输入法即可。

灵感

https://github.com/ybian/smartim

上一篇:日常工具


下一篇:【01】linux基础知识学习——环境配置