现在只能用快捷键 A + 2
之类的进行选择,可是这些已经被分配给其它命令了。如果直接输入数字 2
就能选择第 2 个候选项呢?
可以提交一个issue, 我最近很忙, 应该很好实现。
都支持模糊匹配了,感觉这个意义不大。随便按个字母,都比按快捷键+数字容易。
是只按数字键实现选择,快捷键加数字现在就是支持的。是我问题描述不清吗?
谢谢大佬,等我加了 issue 再回来 @ 你。
抱歉没看清楚。
但是这样如何区分候选项中本来就有数字的情况?
一般的变量名很少有含有数字情况(就我接触到的 Python 和 C ) 。如果确实碰到了,那就干脆取消候选,直接输入。 与直接按数字候选带来的收益相比,这点例外所消耗的时间我觉得是可以忍受的。
可能 latex 会有较多的例外,这种我觉得可以分 mode 使用不同的设置来解决?
我以前用 company
就是直接用数字候选的(虽然我是直接抄的大佬的代码,不知道是他特殊设置的,还是 company
本身就支持)。输入一些长的单词或变量,节省的时间还是很可观的。
大佬,已添加 issue,如果需要完善请直接 @ 我.
另外,顺便请教一下另外一个不太相关问题。现在 search-word
时,要输入许多词才会出现相应的候选词。比如我输入 a
, 可能候选里面只会出现 ab
而不出现 abc
,只有再次输入 b
时,才会出现 abc
。 请问这个特性有没有选项可以更改,看文档没有找到相应的选项。
如果输入了foo
而candidate中有foo399
这样的选项,在接下来输入3
的时候不选择第三个而是输入(变成foo3
)。之前company我抄的abo abo和chenbin的实现
(setq acm-enable-quick-access t) ; only decides whether indexes are shown
(dotimes (i 10)
(general-define-key
:keymaps 'acm-mode-map
(number-to-string i) 'acm-complete-quick-access)
(general-define-key
:keymaps 'acm-mode-map
(format "M-%d" i) (eval `(lambda! (insert ,(number-to-string i))))))
对,应该输入优先。
大佬,这段代码我直接运行报错了。lambda !
是不是有什么问题?
lambda!
抄自doom,general-...
是general.el的功能,你要用内置的lambda
和define-key
改造一下,或者跟我一样抄下doom&引入general
这个时 search_word 做了一些设计, 就是手指头停下来才让后端去搜索单词, 没有做实时一变化就搜索单词。
acm可以做一下判断, 如果 index 和接下来输入候选词的字符如果是一样就输入数字, 如果不一样就选择候选词, 同时 Alt + 数字是可以一直选择的。
这样大多数语言都可以快速通过数字来选择候选词,就和输入法的体验差不多。
原来如此,改成下面这样原生的 emacs 就能用了。
(setq acm-enable-quick-access t) ; only decides whether indexes are shown
(dotimes (i 10)
(general-define-key
:keymaps 'acm-mode-map
(number-to-string i) 'acm-complete-quick-access)
(general-define-key
:keymaps 'acm-mode-map
(format "M-%d" i) (eval `(lambda() (insert (number-to-string i))))))
谢谢大佬,已经完全达到我预期的需求了。
大佬,这个是基于性能上的考虑设计成这样的吗?
能否做成选项,从而在 prog mode 启用,而在 org-mode 下不启用。我之前用 company
,抄得大佬的配置,好像就是这个实现思路,在 org-mode 下从直接显示所有的单词,而在prog-mode下,只有在注释中才开始搜索单词,这样对于我这种英语渣来说可以省不少输入时间。
你是要输入英文单词,还是要补全buffer里的单词。
输入英文单词。
直接用 lsp-bridge-toggle-sdcv-helper 命令吧。