没用过IntelliJ 不足以谈论Emacs

You are one guy who never attempts to admit any mistake. (very common on the internet)

2 个赞

我是两个编辑器都玩的,我并没想撕任何一方。两者都是我日常工具。我也没想要emacs能做IntelliJ的事。我说的是用过IntelliJ 才能理解emacs的好。我的另一个观点,是反对开源软件只能当玩具,不能真做事。可是我帖子一发 就一堆人上来就喷。这就是emacs用户水平高?现在看来基本明白了,懂emacs的人没几个用IntelliJ 的,我觉得这样也未必会真懂emacs。另外一个收获,好多人真是拿它当玩具,稍微严肃一点都会招来反对。我参与过的开源项目都是大公司人做的,对质量都有严苛的要求。

实验了一波,还是cgdb好用啊,方便集成到其他workflow里。

1 个赞

我来分析一下为什么 “帖子一发 就一堆人上来喷”

人都不喜欢被人批评 这是天性

批评是一种论点,需要论据来支撑;当别人认为论据不足的时候,会产生加入辩论的情感不足为奇。

“没用过intellij(的人)【不足以】谈论Emacs”

“用了intellj,才更能体会Emacs的好”

比较一下?讲话的语气应该精准的表达心中的意愿, 否则都是届不到的

我在tmux裏用cgdb。但cgdb print foo不方便。realgud可以和lsp一起用

視窗被切割小了,不習慣

soga

话说你用realgud的时候有没有遇到这种问题:在source buffer里用shortkey command会自动跳到command buffer?

我看到github上好像有这个issue,但是原作者好像没能复现。。也一直没解决

说的有道理。毕竟两个都常用的人少,我说这话时忘了大家都不常用IntelliJ 。

@amosbird 我現在

  • -gsplit-dwarf,減小*.o,加快linking,減小執行檔
  • -Wl,--gdb-index (加快gdb startup),僅ld.gold ld.lld支持,ld.bfd不支持
  • -fuse-ld=lld 加快linking

…給linker貢獻過一些patches的人的心得

# 調試clangIndex準備替換掉libclang
cgdb -ex 'set exec-wrapper env LD_LIBRARY_PATH=/home/maskray/Dev/llvm/release/lib' --args Debug/ccc /tmp/c/a.cc
# 我是這樣調試clang compiler-rt的,sharedlibrary加其他需要的lib
cgdb -x =(printf 'set auto-solib-add off\nstart\nsha stdc\|LLVMCore\|LLVMSupport\|clangDriver') --args ~/Dev/llvm/debug/bin/clang -fsanitize=address -fsanitize=undefined a.o -o a

在cgdb裏看原始碼,常用工作流是:

  • step 跟蹤邏輯
  • up down看看上下發生了什麼;如果需要xref,要context switch到Emacs window裏用ccls,不太方便
  • p foo foo是周圍的隨機識別字,gdb/cgdb裏做這個操作需要鍵入p foo,如果能用🐭點擊就方便了……

現在還有兩個問題折磨我:

我今天玩了下clangIndex (Clang C++ API,libclang也用到),發現dependent name檢索是有希望的:https://reviews.llvm.org/D49002。不過ccls/cquery目前的一個檔案只在一個translation unit處理的模型,有些情況不一定能滿足

我現在鏈接本地clang+llvm的cmake,但生成的Debug/ccc DT_RPATH沒有填上,不能直接cgdb --args Debug/ccc c++ /tmp/c/a.cc,有點不方便。 cmake -H. -BDebug -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS=-gsplit-dwarf -DCMAKE_EXE_LINKER_FLAGS='-fuse-ld=lld -Wl,--gdb-index' -DCMAKE_EXPORT_COMPILE_COMMANDS=On -DSYSTEM_CLANG=On -DCMAKE_PREFIX_PATH="$HOME/Dev/llvm/release;$HOME/Dev/llvm/release/tools/clang;$HOME/Dev/llvm;$HOME/Dev/llvm/tools/clang" -DCMAKE_INSTALL_RPATH=$HOME/Dev/llvm/release/lib

1 个赞

用个热键读出当前文件:行号并转到emacs,挺方便的啊

我不愿意用emacs调试的主要原因是太笨重了,等有空了用https://github.com/rivo/tview写个新的frontend :rofl:

怎麼熱鍵讀出文件:行号并转到emacs ?

得稍微改一下cgdb,里面执行 tmux session switch 带上 file:line

你是说公司项目还是开源项目? 很多知名开源项目背后有大公司资金支持, emacs这种用户太少, 好像没有什么资金支持, 完全靠志愿者, 发展到现在还是挺不容易的.

没有大公司支持是个好事.

名利场那一套一点都不好玩儿

所以你不知道 FSF 和 GNU 还有 GNU/Emacs 什么关系?

FSF 接受的资助主要用于开发 GNU 项目,Emacs 作为 GNU 项目的一部分,预算是内部分摊的。

该主题在创建5小时后自动关闭。不再允许新的回复。