如果我在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 个赞
3vau
2
因为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 可以快速跳回.