company在单词中间时无法触发补全?

company在空白处的补全都没有问题,但是如果在光标后有东西,输入就无法触发补全了;我比较习惯先修改,完成后再把原来的东西删除,现在每次都要多敲一下空格,然后再输入来触发company的补全; 能不能让company只要有输入动作就触发补全呢?

1 个赞

你也可以自己写一个company-grab-symbol 用advice 覆盖后端用得捕获函数

在github中有一个issue, 中间搜到了一个答案, 试用后可以解决这个问题. 虽然issue中认为没有完全解决, 但是对于我的需求是够用了. issue地址为

我使用evil, 所以看了之后做了一些修改, 也放出来以供参考.

(define-key evil-insert-state-map (kbd "C-n") (lambda ()
                                                (interactive)
                                                (if (looking-at "\\S-")
                                                    (progn (save-excursion (insert " "))
                                                           (setq add-char t))
                                                  (setq add-char nil))
                                                (company-complete)
                                                (and company-candidates
                                                     (company-call-frontends 'post-command))
                                                (if add-char (delete-forward-char 1))))

我把多余添加空格的删除了, 这样更满足我的需求. 应该也与vim的使用习惯更一致.

为啥不试试 zk-phi/company-anywhere: enable company in middle of symbols (github.com)

1 个赞

Corfu 没这个问题 :grin:,可以直接单词中触发补全。

image

corfu也挺好的,就是生态还不如company,跟vertico一样。