Comments (18)
原来 emacs-eim 有类似的功能,我fork的时候,把与这个功能相关的代码删除了,有两个原因:
- 相关的代码比较复杂,我看不懂,更别说维护了
- 功能开启后,和auto-complete,company-mode等冲突。
- overlay中文往往对不齐,太难看了。
未来,我没有打算再添加这个功能,因为Chinese-pyim的最终目标还是:备用输入法 ,简单的代码
以及较少的bug是我主要考虑的。
from pyim.
功能开启后,和auto-complete,company-mode等冲突。
确实有这个问题,不过输入中文的时候 auto-complete, company-mode 其实发挥不了多大作用。
overlay中文往往对不齐,太难看了。
我也遇到过这个(可能类似的)问题 [1],Emacs 中一个中文字符占两个英文字符的宽度,或许跟这个有关。
from pyim.
我刚刚添加了 “联想词” 功能,其原理就是,搜索与当前拼音相近的词条,然后用外部补全系统显示,
我在 Chiense-pyim中包含了company相关的代码,同学可以试试。
from pyim.
@tumashu 我们的理解有差别,我开这个 issue 的原意其实只是想用类似于auto-complete
和company
显示补全_菜单_的方式显示候选词,也就是直接把现在 echo area 中的内容搬到_菜单_中。这个需求应该用auto-complete
的 popup-el 比较方便实现。
比如前两天我把 Google 翻译的结果用_菜单_的方式显示:
你的意思是直接给补全系统添加后端,这是我原来没想过的。我正在尝试你的最新代码,我对 company 不太了解,似乎还有稍微配置下 company-mode 才能用。
from pyim.
我还不知道如何激活,company-backends
已经(自动)添加了。有个问题:输入特定的汉字还是拼音会出现补全?
from pyim.
这个功能需要 chinese-pyim 配合, 用pyim输入 “你好” 后,pyim同时会在词库中搜索与 "ni-hao" 词条
邻近的 中文词条,然后使用 company-mode 输入,供用户选择。
我个人感觉这种模式,既不会导致pyim代码太复杂,又可以显著的增强其中文输入能力。同时也有许多好玩的应用。比如: 我自己写了一个 pyim-company-dabbrev 后端,中文补全一下子好用了很多。 这个后端已经包含在 chinese-pyim中了。可以试试。
from pyim.
这个功能需要 chinese-pyim 配合, 用pyim输入 “你好” 后,pyim同时会在词库中搜索与 "ni-hao" 词条
邻近的 中文词条,然后使用 company-mode 输入,供用户选择。
你原意是_何时_(手动执行comapny-complete
还是自动)激活 company-mode 的补全菜单?
我已经安装并配置了 company-mode 和(最新的) chinese-pyim,两者都能正常使用。我目前尝试的结果是:
-
切换输入法至 chinese-pyim
-
输入“ni-hao”(你好),此时未出现补全
-
选择“你好”,此时未出现补全
-
M-x comapny-complete,有时能出现补全,有时不能出现补全,并提示以下的错误信息:
Company: An error occurred in post-command Company: Front-end company-pseudo-tooltip-unless-just-one-frontend error "Args out of range: 0, 12" on command post-command
-
关闭 chinese-pyim 后,M-x comapny-complete 能一直出现补全而不出错。
Update: 在 3 的时候,仍然不能自动出现补全,但是会一直重复地弹出 4 中的错误信息。说明是 company-mode 是在尝试补全。
from pyim.
抱歉了,我又仔细查看了一下我的company配置。 用 emacs -Q 测试了一下, 发现需要做如下设置:
(require 'company)
(require 'company-dabbrev)
(require 'adaptive-wrap)
(setq company-idle-delay 0.1)
(setq company-minimum-prefix-length 2)
(setq company-selection-wrap-around t)
(setq company-dabbrev-downcase nil)
(setq company-dabbrev-ignore-case nil)
(setq company-require-match nil)
再一次感谢哥们的测试。。。。
from pyim.
在这里提醒一下同学,company默认开启了 “词法作用域” ,所以配置的时候注意了。
from pyim.
(require 'adaptive-wrap)
这个包是干嘛用的?Emacs 25 没自带,需要从 GNU ELPA 安装。
在这里提醒一下同学,company默认开启了 “词法作用域” ,所以配置的时候注意了
- “词法作用域”是指什么?
- 配置的时候哪里需要注意?
from pyim.
现在运行到 3 可以自动出现“联想词”补全了。:+1:
from pyim.
(require 'adaptive-wrap) 这个没用。
;;; company.el --- Modular text completion framework -- lexical-binding: t --
我的感觉是: 使用let来暂时调整一个全局变量来改变一个命令的行为,这种方式好像都没有效果了。
from pyim.
目前的联想算法太烂,所以联想得到的词几乎没什么用。不过这是一个好的开始。。。。。 折腾前途无限呀。
from pyim.
;;; company.el --- Modular text completion framework -- lexical-binding: t --
我的感觉是: 使用let来暂时调整一个全局变量来改变一个命令的行为,这种方式好像都没有效果了。
确实,我刚发现,
(setq lexical-binding t)
t
(setq a 1)
1
(defun say-a ()
a)
say-a
(let ((a 3))
(say-a))
1
这样的话只能用 setq 了。
from pyim.
想想就觉得比较麻烦。。。。 还的自己备份全局变量原来的值。
from pyim.
对了,你用什么软件做的emacs截图动画?
from pyim.
先录成视频(用了 Mac OS X 有自带的简单的录屏软件),再用 ffmpeg 和 ImageMagick 转化成 gif 图像:
ffmpeg -i input.mov -vf scale=800:-1 -r 10 -f image2pipe -vcodec ppm - | convert -delay 5 -layers Optimize -loop 0 - out.gif
PS. 以上的命令是直接从 https://gist.github.com/dergachev/4627207 抄来的。
from pyim.
恩,我试试。
from pyim.
Related Issues (20)
- 【建议】通过检测光标前的两个单词是否都为英语,决定是否切换为英文模式。 HOT 3
- 使用pyim全拼如何输入“nue”和“lue”? HOT 2
- 请问如何当从pyim切换回英文时保留已输入字母? HOT 5
- 即使 pyim-page-tooltip 已经设置成 minibuffer,pyim 依然依赖 posframe HOT 1
- 输入位置越靠后候选词(开启了浮窗)的响应越慢 HOT 8
- Sync latest vertico suuport changes HOT 6
- [FR] Display how to type each candidate in default scheme, when assistant scheme is enabled HOT 3
- How can I diable the "pyim-translate-trigger-char" ? HOT 2
- 关于emacs29词库的报错 HOT 1
- 光标颜色不随主题变化而变化 HOT 1
- 为什么我的候选词后面总出现(buff) HOT 4
- rime-quanpin 情况下上屏的词顺序固定不变 HOT 2
- 固定词频配置 HOT 1
- pyim-isearch-mode开启,无法搜索中括号 [ ] HOT 1
- pyim输入法无法在eww打开的网站(比如百度)的输入框中输入中文 HOT 1
- error: No such file or directory, xr
- 几年未用了。新安装后,词序感觉不太对啊。 HOT 4
- 如何简单的按词库顺序排序 HOT 2
- 默认的输入法打不出lue 忽略的略 HOT 1
- termux 下的emacs29.3使用报错“error in process sentinel: End of file during parsing” 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 pyim.