水贴:关于irony的前端选择

irony这个C/C++补全插件支持两种显示前端:

  • completion-at-point-functions
  • company-irony

其中completion-at-point-functions不能补全全部的模版……总是给你一个 printf( 之类的补全(虽然显示是全的),但是company-irony在我这很差的技术水平上,只要将company-irony添加到company-backends变量里,这个插件就会屏蔽所有的其他补全插件,导致很多dabbrev啊,c-headers之类的都无法使用。

所以最后我选择completion-at-point-functions。 反正我只是要个参考而已……我毕竟不写C++,只写C啊…… 其他的关于C的东西,需要的时候加个yasnippet也就得了……

======================================== 由此我具体想水什么呢?

在你技术有限而又偷懒不想去学的情况下,一定得明白自己的需求到底是啥……而且有的时候,欠债得还,就像我现在不得不面对这样的选择一样

你没有了解company的扩展机制, 默认就是前面的backend会屏蔽后面的backend,你如果需要多个backend都使用,要使用: ((a b c) d e f g) 这种格式, 这样 abc三个backend就可以同时使用了。

好吧……受教了……但是这么弄做自动安装…… 哎……我去学use-package去吧……

另外那种写法我是知道的……不过我想请教你一个问题 因为我的mac上面禁止安装关于C/C++的开发者工具,所以我写了个判断以使得irony不在mac上安装, 这么写会不会添加一个不存在的company-backends ?

if 可以派上用场

总之……我目前又开始懒政了…… 一切有分别的东西按照最大众的来……由于我只在一台机器上频繁写C,于是我就默认不装什么company-irony了……到那台机器上手动配就得了……

我真不想再写那么多判断了……我已经把那些看着碍事的以前的判断都清理走了……

总之,这件事情就这么结束吧……我以后也不会就此问题到这里来提问了……

总之我觉得与其费神还不如找个笨办法折中一下……毕竟我需要经常重置我的emacs(别问原因……就和禁播xx(不能说的事情)一样)……而且……

我本来就没打算做一个“全平台通用,全世界适用”的工程。

此外, completion-at-point-functions 也够用了……