Neovim 用户请教关于使用 Emacs Orgmode 做理科笔记的一些建议

我是一名电子计算机专业的大学生,在一年前接触到 Vim / Neovim, 并且从那时起一直使用其完成编程作业. 我使用 VSCode + markdown 插件 + math snippet 插件做课堂笔记, 因为目前 Neovim 的 markdown preview 插件不能渲染一些 LaTeX 公式, 而且没有一些 markdown 的扩展语法, 例如使用 = 显示高亮等.

然而最近由于这个 markdown 插件作者弃坑, 开始出现了 markdown 笔记无法成功导出为 pdf, 数学公式无法渲染等问题, 并且 math snippet 的插件也开始出现问题, 我开始考虑使用 Neovim + VimTeX 改用 LaTeX 记笔记, 但还是觉得可能 Emacs 的 Orgmode 更方便一些.

我想问各位几个关于 Emacs Orgmode 的问题:

  1. 我看到了几个在 Orgmode 中进行行内公式预览的插件, 但是不知道哪个合适, 以及是否可以渲染大部分能在 LaTeX 中使用的公式 (之前我用的 VSCode 上的 markdown 插件会报奇怪的语法错误不渲染公式, 但是 Pandoc 可以正确地转为 pdf; 在 markdown 里我不能使用一些公式环境, 如 {aligned} 环境等)

  2. 有没有合适写 LaTeX 公式的 snippet 插件? 如果有, 和 Evil 插件的兼容性如何?

  3. Orgmode 笔记之间是否可以交叉引用和跳转? (这个 markdown 做不到, 但是 Org 也许可以?)

  4. 其它的关于 Vim 用户入门 Emacs 的建议:

    1. 我应该一直使用 Evil 吗? 还是其它的模态编辑插件? 还是逐渐转向原生 Emacs 键位?

    2. 我应该从社区驱动的配置, 如 Doom Emacs 开始, 还是从 0 开始配置?

    3. Emacs 下的中文输入方案 (输入法, 分词, Evil 兼容)? 中文分词是目前 Vim/Neovim 无法做到的, 前几天浏览帖子好像发现了一些使用外部分词工具的一些尝试, 不知道是否可以投入使用.

    4. 我目前的想法是使用 Emacs 逐渐取代 VSCode, 成为 Neovim 图形功能缺乏的补充, 因为其更成熟稳定, 更方便定制,也不容易出现插件维护者轻易弃坑的情况; 而代码工作我仍然打算使用 Neovim 完成. 当然也不排除完全转向 Emacs 的可能 (主要是对 Emacs lsp-mode 的性能方面还有疑惑). 各位有什么其它建议吗?

3 个赞

4.1 会用 evil 应当继续用下去,毕竟文字编辑这方面 vi 模式很爽。

4.2 应当直接用 spacemacs / doom emacs,自己攒配置容易打消积极性。

4.4 我用的是 spacemacs lsp layer(对 lsp-mode 的封装),最快的 emacs lsp 实现应该是 lsp-bridge,但我比较懒得去折腾了。

3 个赞

LaTeX沒用過,但這裡有之前的春節特別節目,第一個講者說了一些LaTeX跟YASnippet的東西可以參考一下。

引用有org-transclusion可以試試;跳轉的話M-x org-insert-link file: 然後輸入路徑,就可以做超連結。Doom的快捷建是 SPC m l l

快捷鍵我很菜所以沒什麼意見,我是直接用doom,然後慢慢摸索各種快捷建,看哪個順手就用哪個。

中文輸入我不太清楚你的要求,但可以參考看看rime

非常感谢你的建议!

rime 看起来很不错,谢谢!

markdown按理说应该可以做跳转,毕竟markdown也有marksman这样的东西。

我上周给我公司同事现场切换的,全程5分钟:

  1. 注释掉配置中所有关于 lsp-mode, lsp-ui, company, flycheck/flymake 的部分
  2. 安装两个python依赖: pip install epc orjson
  3. git clone lsp-bridge 到自己的路径
  4. 把下面五行配置写入 ~/.emacs 中, "<path-to-lsp-bridge>" 换成第3步的路径
(add-to-list 'load-path "<path-to-lsp-bridge>")

(require 'yasnippet)
(yas-global-mode 1)

(require 'lsp-bridge)
(global-lsp-bridge-mode)

其他全程不用做任何配置,开箱即用,全程5分钟搞定。

5 个赞

感觉lsp-bridge可以支持markdown了,估计org-mode不会出这种支持。

我用这个:新插件:Org-mode LaTeX 即时预览

推荐用 yasnippet,可以配置在数学环境内自动展开,特殊功能可以用 elisp 自己实现,比如说常用的 fraction, 我的 snippet 效果是这样的

Peek 2022-09-17 08-14

5 个赞

是有markdown lsp server,欢迎提交PR

感谢!看起来这个插件只有光标在公式上方才显示预览,请问可以实现类似 Typora 的效果吗?(光标离开时在公式位置一直显示预览,光标在公式上再显示 LaTeX 源码)

原来你是这个意思,我用的是这个 GitHub - dandavison/xenops: An editing environment for LaTeX mathematical documents

应该完全符合你的需求

3 个赞

正是我想要的!感觉比原来在 vscode 下一边源码一边预览的方式好太多了

之前没了解过

我用的是 org-fragtog, 你了解它和 Xenops 的区别吗?比如哪个更流畅之类的

我没用过 org-fragtog , 我用 xenops 的原因主要是他在 LeTeX-mode 也能用。

xenops 在 org-mode 有时会莫名卡死。

我现在neovim和emacs都在使用,写代码还是用neovim比较多,一方面是因为内置的lsp太丝滑了,而且很好配置,另一方面是因为treesitte太强了,它能提供的功能太多了。emacs的treesitter的完成度和neovim比差太多了。然后做笔记,以及日程管理等我主要是使用emacs的orgmode,使用doomemacs,emacs写配置要比neovim复杂很多, 折腾不动了。

我之前有尝试过使用neovim记录笔记,主要使用rmarkdown,rmarkdown和org一样,都是可以在文档内直接写latex代码。在里面渲染行内公式的话,有两个插件推荐,一个是vim-pandoc-syntax,这个能够用conceal text实现一些上角标,下角标,希腊字母等的基本渲染,另外一个是 nabla.nvim 这个能够作一些相对复杂的渲染,完成度还算高,但是还是基于ASCII的渲染,而不是mathjax的渲染,但是这些和orgmode里能用mathjax渲染latex公式比还是差得很远。

  1. 暂且没遇到不支持的
  2. 非常多,可以看这张图 https://karthinks.com/software/latex-input-for-impatient-scholars/#the-state-of-latex-editing-in-emacs
  3. org-roam ?没那么复杂的需求直接 link 也行?

4.1 个人喜好 4.2 建议先从社区配置开始,后面再看

另外这里还有通过 auctex 在 org mode 进行公式预览的,也可以参考 https://karthinks.com/software/fast-latex-previews-in-org-mode/

数学公式预览我推荐使用math-preview.

我试过的有org自带的inline math preview, xenops, eaf.