从IDE到Emacs,到底做到什么程度值得?

自由软件和专有软件之间的矛盾似乎是共产主义和资本主义矛盾的一个投影 :joy:

不客气。对你的疑问回答如下:

  1. Flycheck 检查 cpp 的问题,可以检查下变量 flycheck-cppcheck-include-path.
  2. Visual Studio 插件有对 Emacs 的支持,参考 Search results - emacs | Visual Studio , Visual Studio Marketplace
1 个赞

我也是windows环境,vs2010。用的cquery,效果不错,我是自己写了个脚本,解析sln工程,然后生成compile_commands.json文件供cquery使用。不过我写得脚本很简单,不通用。楼主有兴趣可以也试试,写一个通用的工具。

效果还可以,就是cquery比较占内存。我的工程索引下来有400多m

我之前的问题是在windows上编不出cquery的可执行文件,你是怎么编译的? 我是在windows上用cygwin来运行emacs。

编译时没必要用那个,装个vs2015和cmake就行了。创建个build目录,cd进去,cmake …就ok了。再用vs打开编译

好,我试试看。他这个耗费内存的情况有多严重?我这工程里面有UE4的引擎代码……

sorry, have to type English here. emacs is an editor, not an IDE. The core value of IDE is ‘INTEGRATED’, it got a set of functions working very well together. But Emacs is developed by different people/team, and they don’t test against each other and there is no agreed set of features in emacs so in practice it is impossible to test such feature ‘set’. Spacemacs is a good effort to improve the ‘integration’ of plugins but it turns out to be buggy as well. So let’s face it, emacs has its limit, either you build the plugin yourself or hope others do it for you.

linux和windows的一个根本性的区别是各个程序之间的关系.

在windows环境下,所有的应用程序只需要依赖微软提供的各种组件,各个应用程序之间很少发生依赖关系, 这也逐渐形成了一种基本固化下来的模式.

而linux环境则截然相反, 几乎每一个靠谱的程序在一开始就会考虑何其它程序的协同问题,linux环境又给大家提供了管道这种非常靠谱的协同方式.

这就导致了linux系统的整体能力是以几何级数的方式在成长.当然,桌面图形界面部分还有待突破,

所以,要真正体验编程的乐趣,还是尽早切换到linux才是正道.

不要乱吹,管道算是 Unix 设计中最需要被改革的。现代软件在越来越依赖复杂数据结构的时候还得用管道传递纯文本这种低效的方式,无疑是固步自封

3 个赞

Ugh…

At some point you should stop.

管道效率高低要看相对于谁. 但不能就得出管道不行了的结论.

要做的并不是把管道废掉, 而是需要增加一种新的高带宽,高效率的数据交换方式作为补充,来提高图形界面,网络大吞吐量传输的性能.

不过,说到底,冯诺伊曼结构决定了也就那么几招,无非是在安全性何效率之间如何取舍的问题.

感觉vscode+c++是不是很耗电啊

这个思想过于简单粗暴,等同与完全靠堆硬件。 Windows 所基于的 Mach 是怎么解决问题的可以了解一下。微内核思想本身就是由 pipe 所启发,内核组件之间全用 port 交流,实质上就是和 pipe 一样的在进程之间大量复制内存。这样当然会性能低,于是 Mach 采用了写时复制,用 port 传输数据变成了让多个进程访问同一段内存的抽象。

再想想,让所有程序公用所有内存空间,不就是 Lisp Machine 的思想?(终于暴露了意图)

4 个赞

不要试图把 Emacs 变成 IDE,基本一定不如真・IDE 好用。我的工作都是本地编译不了,要在远程编译的那种,像 company-clang 这种基本没用。Python 也是,我以前用 company-jedi,经常出现明明前面有 type hinting,后面就是不给补全的情况⋯⋯ 后来换 Anaconda 以后好点了,但是依然没法和 PyCharm 比。后来我就习惯了⋯⋯

之前用 PyCharm 的时候我的电脑是台 2011 年的 15 寸 MBP,PyCharm 启动大概要 5 分钟,启动完了以后打第一个字它还要再反应 5 分钟⋯⋯

1 个赞

为什么不看看jedi怎么就不补全了呢

主要是因为我懒⋯⋯ 估计还是我配置不对。后来换了 Anaconda。

windows下的字体渲染得 咋都这么丑 …

现在结合lsp,已经很接近IDE了,基本编程功能、项目管理一样不少,关键是内存占用和反应速度比IDE好很多。

1 个赞

我只用了ccls,感觉还没成熟稳定,报错,找不到调用关系,需要自己学习很多知识,不能开箱即用

看演示能找到调用关系啊。试试cquery吧