Comments (35)
WSL 我不太熟,但是你的 rime 是装在哪里的?如果是 rime 在 Windows 里,去直接调用 WSL 编译出来的二进制文件(这个二进制文件应该是在 Linux 里才能运行吧)可行么?
你试试交叉编译到 Windows。或者最直接的办法,在 Windows 下面装 rust 进行编译。
from rime-easy-en.
用 rust 编译时遇到了 link.exe
not found 的 error,懒得折腾就用 Python 装的 wordninja。但是还是没有成功,输入连续单词会有窗口闪动,然后输入框无法输入了。
from rime-easy-en.
我现在手头没有 windows 的环境进行测试,只能先等等看有没有其它 windows 用户进行反馈。
from rime-easy-en.
好。说实话,这个 easy_en 我用的很少。关键是不够智能。不支持模糊匹配,比如我想输入 interesting 每一个字母的顺序都不能错。我曾经用过一个 AutoHotkey 的脚本,输入 inst 也可以匹配到 intersting 。 估计这个在 Rime 中很难实现。
from rime-easy-en.
输入 inst 也可以匹配到 intersting
不加空格的 fuzzy 匹配的准确度相当低,相当于这个正则 ".*?i.*?n.*?s.*?t.*?"
,会匹配到你不想要的单词。一般的做法是用空格表示哪里需要模糊,比如 i[空格]nst
相当于 ".*?i.*?nst.*?"
,这样准确率就会提高。
在 Rime 中很难实现
用 lua 搞也能实现,不过这么做就是相当于完全绕开 rime 自己的查询词典了。
from rime-easy-en.
嗯,看起来,加空格确实可以提高准确度,但是,空格键经常是作为第 1 候选词的选择键,所以加空格可能会影响输入的流畅度?其实不加空格的 fuzzy 匹配也可以很快的 一次没匹配 再敲一个字母就行。不管怎样, 如果可以实现还蛮期待的。Rime 对英语输入的支持很差,所以绕开了也无所谓,只要整合在一起就行了 😂
我之前用 AutoHotkey 可以实现(不加空格 fuzzy 匹配,估计加空格也可以),但做的不好的地方就是输入法的候选窗在某些应用比如 Chrome 里不跟随当前输入位置的光标,而是跟随鼠标的位置,影响体验。且没有和 Rime 整合,需要另开 (当然这个也不是特别大的问题)
from rime-easy-en.
如果可以实现还蛮期待的
还是要调用一个外部的 rust 程序哦 😂
from rime-easy-en.
不需要调用一个外部的 rust 程序员就行,😂
from rime-easy-en.
win10上确实有问题,闪一下黑窗,然后输入框就刷没了。rust不懂,通过ENV进行高频数据交换,还是比较卡的。后来找了个C++写的分词类,down下来librime-lua,整合进去,编译rime.dll,替换小狼毫自带的,在lua里面只接调用C函数分词,终于不出黑窗了。如何和中文混输时候进行连输?主页上输入法显示彩色灯泡,为啥我这里显示黑白灯泡☹
from rime-easy-en.
@cnlog 厉害了 👏🏻,你这个方案会放到 GitHub 上吗?有空我学习一下。还有,这个方案支持 fuzzy 匹配吗?(这个可以有😂)
你显示黑白灯泡,可能是字体的问题?我虽然没成功,但某次看到一个黄色的灯泡一闪而过。
from rime-easy-en.
https://github.com/cnlog/warehouse
自己编译的话.env.bat中
set CMAKE_GENERATOR="Visual Studio 16 2019" -A Win32
换成你的vs版本
替换原来的rime.dll,注意备份。退出算法服务,复制dll后再启动算法服务。把wordninja_words.txt放到用户目录,和rime.lua同一目录。修改easy_en.lua,
local function split_sentence_wordninja_rs(sentence, wordninja_rs_path)
--return capture(wordninja_rs_path .. " -n " .. sentence)
--调用l_word_split函数分词
local result = l_word_split(0,sentence)
return result
end
from rime-easy-en.
没有 vs,只有 VS Code 😂
from rime-easy-en.
发现一个有趣的英文输入法,用 lua 实现的:https://github.com/sdadonkey/rime-english 希望对各位有所启发 🤭
from rime-easy-en.
@yu-soong easy-en 的重点是提供基本的单词和句子输入,不会考虑单词释义等功能,今后的目标是优化长句输入体验。
rime-english 更像是英文单词词典,对于学习使用更有帮助。
两者侧重点不同,用户可以根据需要搭配使用。😘
from rime-easy-en.
@BlindingDark 对的,我也不需要单词释义,所以用他那个方案,我自己手动把能去的释义都去掉了。
目前那个方案的优点是:
-不需要用 wordninja, 因为目前 wordninja 貌似在 Windows 10上面有 bug,至少我现在用 Rust 和 Python 装的都用不了;他这个应该是用的 Lua 速度也挺快的。
-支持通配符 fuzzy 匹配;空格键输入单词会自动插入空格(目前用数字键选词没有空格,不知道是不是 bug)。
缺点是好像不支持短语,只能是单个单词。
我觉得这两个方案结合起来可能就完美了😂
from rime-easy-en.
@yu-soong
我本人不在 Windows 下使用 rime,所以没有暂时测试 Windows 下的兼容情况。不过下阶段有计划提供 Windows 平台的二进制文件,到时直接下载使用即可。
单个单词的模糊匹配也有在计划中,不过整句的模糊输入还没有想到什么好的方案。
from rime-easy-en.
下阶段有计划提供 Windows 平台的二进制文件,到时直接下载使用即可。
期待👏
整句的模糊输入
我觉得可以将常用的短语放进 dict 里面去。就是不知道可不可以将短语当作普通的单词看待。另外那个方案对符号支持比较友好,输入逗号句号,直接在单词后面添加符号,不会产生不必要的空格。供您参考。
from rime-easy-en.
将常用的短语放进 dict 里面去
词典中已经有部分短语了
不会产生不必要的空格
这个之前有讨论过
easy-en 的做法是,不需要用户手动输入空格,程序自动会在每个单词后面加空格,不过 rime 不能删除已经加上的空格,所以我目前没找到一个好办法可以在输入标点后将前面的空格删除,如果有的话那就完美了。
rime-english 的做法是,每个标点和空格需要用户手动输入,只不过是附带触发单词上屏,这样是可以根据情况来选择要不要加空格。
举例,输入 I love rime.
easy-en 的键盘按键顺序:Iloverime[删除空格][句号]
rime-english 的键盘按键顺序:I[空格]love[空格]rime[句号]
from rime-easy-en.
嗯,这是个输入习惯偏好问题。rime-english 更接近于我们平常的英语输入习惯,但是 easy-en 习惯后估计会更流畅(毕竟少打不少空格😝)。
from rime-easy-en.
现在用起来的感觉,更像是连续输入增强在windows下的实现方式可能不太行。
我两种都试了,感觉两种连续输入增强都是调用外部程序失败的那种感觉。
连续输入之后,想要它进行空格补充的时候,都会有一个程序被调用,rust版本的时候是一个没有任务栏图标的东西,弹出然后就消失;然后就会卡在原来的位置,再因为小狼毫的问题,窗口会被隐藏;之后再继续输入的时候,就会卡住;然后rime被暂时挂起,直到调用到切换输入方案的菜单的时候。
而在python的那个的情况下直接是一个巨大的cmd窗口弹出,然后消失,然后直接rime挂起。
不过现在关掉之后用起来还是很爽的(除了词库比较细碎 和 模糊好像还是怪怪的以外,比rime-english那样直接占用中英输入要爽很多很多
from rime-easy-en.
@H-111-di 看来 windows 下确实不能这么直接调用,我再尝试下别的方案
from rime-easy-en.
开发大大辛苦了🙏🏻
from rime-easy-en.
Windows 版本的 exe 文件,点击下载
https://github.com/BlindingDark/wordninja-rs/releases/download/latest/wordninja.exe
也可以去我的仓库的 Release/Assets 找到编译好的 Linux, MacOS 以及 Windows 版本的 wordninjia-rs
https://github.com/BlindingDark/wordninja-rs/releases
from rime-easy-en.
谢谢 @BlindingDark
我刚才试了一下,还是没有成功。
以下是我的配置过程:
- 安装wordninja.exe,Windows 警告程序不安全,我没管 run anyway。
- 用东风破安装easy_en 发现打句子依然闪屏、退出,再次点击 wordninja.exe 时安装界面也没有了,而是有个黑色的框一闪而过。
- 去 easy_en.custom.yaml 里设置路径
patch:
easy_en/wordninja_rs_path: "C:\Users\myname\Downloads\wordninja.exe"
还是不行 Rime 的 log.ERROR 文件报错: E0324 17:32:52.420958 9544 config_data.cc:71] Error parsing YAML: yaml-cpp: error at line 2, column 43: bad character found while scanning hex number
不知道我以上的步骤有没有错误的地方?
from rime-easy-en.
@yu-soong 大概发现问题了,在尝试解决
from rime-easy-en.
👍
from rime-easy-en.
@yu-soong 问题比较复杂
首先是路径问题,Windows 配置路径如果使用 \
,则需要两次转义也就是写四个 \\\\
,所以推荐用 /
作为路径分隔符,也就是 C:/Users/myname/Downloads/wordninja.exe
然后是权限问题,rime lua 只能读取到 rime 用户配置文件夹下的文件,所以放在 download 路径下的文件是读取不到的,所以路径应该放到 C:/Users/username/AppData/Roaming/Rime/wordninja.exe
这样放好之后,虽然不报错了,但是在大部分输入框里都没办法正常工作,只有在极个别的一些窗口,比如文件管理器的搜索栏里可以使用。打字的时候你会发现会有一个黑框闪过去,这个楼上很多人已经提过了,就是这个黑框导致输入焦点丢失,无法正常使用。这个是 lua windows 实现的一个问题,一定会弹 cmd 窗口,我现在在想办法绕过去,比较麻烦。
AM 4:00
成功了,今天搞的比较晚了,明天整理解决方案
from rime-easy-en.
@BlindingDark 期待 🤞
from rime-easy-en.
@yu-soong 下面这个方案仅作为测试使用
- 点击下载 weasel-lua-winapi.zip
- 将两个 dll 解压到 weasel 目录(右键点击 rime 托盘后,选择 程序文件夹 即可打开 weasel 目录)
- 必须将 wordninja.exe 放在 用户文件夹 中
- 正确配置 wordninja.exe 路径,如
C:/Users/username/AppData/Roaming/Rime/wordninja.exe
,注意是/
斜杠 - 修改 easy_en.lua,将开头的 capture 函数,也就是开头的 6 行,替换为下面的代码
require "winapi" local function capture(cmd) code, s = winapi.execute(cmd) return s end
- 退出算法服务再启动算法服务
上面的方案我自己试了一下,性能不是很理想,步骤也过于繁琐了,接下来我会仿照 @cnlog 的方案,把 rust 程序打包成 dll/so,这样所有平台都能受益,速度应该也会提升。
from rime-easy-en.
我试了一下,不行。连候选词都没有了,如图:
我等你更成熟的方法吧。你慢慢来🤭
from rime-easy-en.
适用于 Windows 系统的更新来了 🎉
参照 README https://github.com/BlindingDark/rime-easy-en#lua-native-module
只需要
- 点击下载 https://github.com/BlindingDark/wordninja-rs-lua/releases/download/latest/wordninja_windows_32_lua53.dll
- 点击下载并解压 https://sourceforge.net/projects/luabinaries/files/5.3.6/Windows%20Libraries/Dynamic/lua-5.3.6_Win32_dllw6_lib.zip/download
- 将第 1 步得到的 wordninja_windows_32_lua53.dll 重命名为 wordninja.dll 并放到喜欢的位置
- 将第 2 步得到的 lua53.dll 放入 weasel 目录(右键点击 rime 托盘后,选择 程序文件夹 即可打开 weasel 目录)
- 配置 easy_en.custom.yaml
patch: easy_en/use_wordninja_rs_lua_module: true easy_en/wordninja_rs_lua_module_path: "C:/SOME/PATH/wordninja.dll"
欢迎反馈
from rime-easy-en.
@BlindingDark 不知道是不是我电脑的原因,按照这个方法还是没有成功,依然闪屏。
但是我按照 @cnlog 的方法成功了。但是他这个也有小 bug,就是有时会打出两个空格。并且不支持撇号(')比如 it's, that's 等打不了,只能打its 然后在候选框了选 it's.
如果愿意的话,建议可以考虑合并过来。然后对比一下看哪个速度更快一些。
from rime-easy-en.
依然闪屏
理论上是不可能的,这个方案从头到尾就没有调用过外部程序,可以把你的完整配置发来么?
你说的闪屏是什么现象?可以分词但是有窗口弹出来闪一下,还是输入闪一下但是没分词,还是一点候选也没有只闪屏?
以及你的 rime 是从哪里下载的?官网上默认是 32 位程序。
@yu-soong 最近你有空的话可以给你远程控制看看问题。你有什么联系方式么?
from rime-easy-en.
@BlindingDark
不好意思,我刚刚认真的检查了一下。原来是我的 easy_en.lua 文件有了改动(或者是你做了什么改动?)
总之,覆盖成你的,就可以使用了。十分感谢!
from rime-easy-en.
(或者是你做了什么改动?)
是的,最新(0.9)版本的 lua 脚本是升级了的。
既然问题已经解决,我就先关闭这个 issue 了。
有什么新的意见和建议欢迎提新的 issue 😘。
from rime-easy-en.
Related Issues (20)
- 设置中英混输时出错 HOT 2
- 建议 HOT 1
- 手动安装,微软双拼无法开启中英混输 HOT 14
- 请问怎么调整明月拼音未输入完整拼音时, 中文优先在前 HOT 1
- 很奇怪的置顶词条无法删除:buts、yu、vs等 HOT 3
- 一些安装过程的注意点 HOT 2
- 手动安装没有作用 HOT 1
- 手动配置混输模式,与挂载词库产生冲突 HOT 2
- 单独输入的字母没法输入
- 如何限制easy en建议的词条数量 HOT 2
- 连续输入增强一直无法使用, 请指导帮忙, 谢谢 HOT 4
- 求连续增强输入rime.dll
- rime从 0.14.3升级到0.15.0不能连续输入了 HOT 1
- Feat: 模块化 HOT 1
- please update new version, is long times
- cannot show words HOT 3
- please merge https://github.com/skywind3000/ECDICT HOT 1
- 手机ios怎么配置呀有教程吗 HOT 1
- 请问选择候选词后自动插入空格的代码怎么写
- `%1 is not a valid Win32 application.` when using `wordninja_windows_64_lua53.dll` HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rime-easy-en.