用Emacs效果好到超过我的想象的几件事

之前写了个我放弃用Emacs的几件事,可能有人以为我不喜欢Emacs,那么再写几件我觉得效果好到出乎意料的。

  1. 文件管理

没想到用得最顺手的文件管理工具居然是Emacs这样一个文字编辑器。这里有一半要归功于(setq dired-dwim-target t),让我可以像以前的双面板文件管理器那样操作文件。另一半则是dired的高度可定制性。

  1. Org-mode + Jupyter

太太太好用了,不光是可以替代Jupyter notebook,而且是全面超越。唯一的缺点是结果不能互动,但是这个我可以忍。

  1. Pdf-tools

完全没想到在Emacs里显示Pdf可以这么流畅,大纲显示,全文搜索,内容选择,笔记存储都完美。全键盘操作,是一边读书/论文一边敲代码做试验的理想工具。

  1. eglot/lsp + typescript

typescript是我用过的所有lsp里效果最完美,完全达到了可以放心日常使用水平的。安装后开箱即用,不用任何设置。速度非常快毫不拖泥带水,而且没有大量资源消耗的问题。希望其他语言的lsp也要以typescript为标杆才好。

12 个赞

这个能展开说说么,我也有点兴趣

1 个赞

到melpa上安装jupyter这个包,在自己init文件里加上

(when (executable-find "jupyter")
    (add-to-list 'org-babel-load-languages '(jupyter . t) t))

然后你在org-mode里就可以用jupyter-python作为语言名放代码块了,画图也可以

#+begin_src jupyter-python :session hello
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
pass
#+end_src
1 个赞

我记得org自带python支持,也能用作文学编程, jupyter-python相对于org-mode自带的优势在哪?

差不多就是jupyter和python的区别。自带一堆数值计算和作图的库,然后有一个服务器进程保持后台运行,连续求值你发过去的代码片段,把结果用比较美观的形式发回来。

1 个赞

想不到 dired 还能这么用!isearch 等其它内置插件也是有很多有用的功能选项但默认关闭,如果有人能汇总下这些选项就好了。

1 个赞

其他修改的dired配置还有

<backspace>绑到dired-up-directory,这样按一个键就能回到上层

(setq dired-listing-switches "-alh") 用k/M/G等单位显示文件大小

(require 'ls-lisp) (setq ls-lisp-use-insert-directory-program nil) (ls-lisp-emulation 'MacOS) 在所有平台上都用elisp来做文件列表,而且都用最简短的格式(MacOS),因为我从来没有看文件的所有者和群组以及链接数的需求。

(setq ls-lisp-dirs-first t) 把目录放到最上方

3 个赞

(add-hook 'dired-mode-hook #'dired-hide-details-mode)的效果差不多,而且按下( 就能toggle

3 个赞

一直觉得 org-mode 里面带图片,翻页和滚动的效果很糟

3 个赞

我一直以为 pdf tools 都不太行来着

1 个赞

单独用起来体验肯定是没有其他 pdf 阅读器好的,最大的缺点就是慢,不过优点就是老生常谈的和 emacs 集成度好,方便 hack

对于我个人来说,衡量一个 pdf 阅读器的好坏的指标不是看它的性能有多好,操作有多方便,是否用了最新的技术,而是看一定时间内我能否读更多的书,所以我一直用着 pdf-tools + org-noter + citar 的方案

3 个赞

有时间我也去试试,标注之类的功能都可以吗

citar 是使用场景是什么?

可以,但实际用下来体验很差,我几乎不做标注

文献管理,具体可以看 README

我觉得文献阅读sioyek挺好的,如果能做一个插件把sioyek数据库里面记录的标注位置转成org-link就能和emacs深度结合了

org-babel 自带的那个 python 的实现比较拉胯,使用起来有诸多不便的地方。具体上来说比如返回值如果想输出到当前文档,一定要写 return。但是 org-bable 的代码块本身不是一个函数,结果你要突兀的写一个 return,看起来就会特别奇怪。除此之外还有不少地方。

然后 jupyter 实现就非常完备,基本上就是完全可以把 org 文档当作是一个 jupyter 的前端的感觉。 (jupyter notebook 也可以算是一个 jupyter 的前端)。而且 jupyter 不只是支持 python,也支持 R 和 julia 语言。当然 org-babel 的 R 的实现是相当不错的,如果用 R 的话自带的就够用。

最后,jupyter 的代码块是可以直接在 org 文档里就进行补全的, 补全的效果和 jupyter notebook 里的类似,是直接基于当前 session 的变量的动态补全。

2 个赞

你们可以体验一下 eaf-pdf-viewer, 就单单这个应用的体验, 要比 pdf-tools 好很多, 性能和外面 pdf 软件一样快, 同时全键盘操作、 暗色不反色图片、 vimium跳转、 org集成做笔记, 功能都比 pdf-tools 多很多。

3 个赞

你的软件都不上melpa,装起来麻烦

1 个赞

melpa是错误的方式,用git submodule 吧。

效果好到出人意料的必须加上一个 telega.el.
用之前你无法想象在 Emacs 里聊天是一个多么惬意的事情

升级一下tdlib封我一个号,封了四个了。还好最早封的一个目前解封了,不然上不了telegram.

不敢再用telega.el。