关于completion-at-point使用的问题

如果我在org-mode中输入org,然后M-x completion-at-point没有任何反应。后来偶然发现,如果在代码块中,是会出现补全的候选的,也就 是在lisp-interactive-mode中 completion-at-point是可以用的。

后来安装了org-roam后,发现在org-roam中使用的话,是可以提示补全org roam node的。

那么个人猜想,是不是因为org mode中不知道补全的范围,所以completion-at-point才无法使用。

那么应该怎么设置才可以在org mode中使用补全lisp的功能呢?也就是我在org mode的文件中输 org- 可以出补全呢?

1 个赞

因为org-mode不是写代码用的呀,如果你一定要把代码直接写进org文件里,可以临时切换到对应的major mode~

感谢回复,的确是个办法。

Corfu + cape 就可以通过 cape-symbol 这个命令在任何地方补全 elisp 的 symbol 了,详细使用可以看仓库的文档。corfu 就是用的 completion-at-point , cape 只是它的扩展。

待我研究研究

使用Corfu+Cape完成了要的需求,非常感谢,惊喜的是还解决了abbrev的补全。

但又出来一个新问题。

如果在文本中想输入下面的内容:

这是org-mode的一个功能。
这是 =org-mode= 的一个功能。

因为在英文前面有个中文字或=,就办法提示补全了。你们遇到过这类需求吗?

你说的这两种情况是 Emacs 本身的问题,因为中文和英文连在是被识别为一个单词。

我个人是在中文和英文之间加空格进行区分。

对于=org-mode= 这话情况,我是先输入英文,再去加等号。M-b 可以快速跳回.

感谢回复,M-b 又学到一个