你是怎样使用Emacs的?原生Emacs方式吗?

用GNU Emacs大约有快一年了,Spacemacs、Doom Emacs、purcell emacs.d、Prelude和Centaur Emacs都有尝试。这其中有基于evil插件来用的,也有基于原生Emacs的配置。

仿vim的确大多数情况下很方便,但是在Windows操作系统下利用系统自带方式输入中文(Emacs自带的中文输入似乎比较弱)时太痛苦了,按Esc键后不能自动转成英文输入方式。不输入中文当然不会有这个痛点。

每个配置都有其优缺点,但是stars能多少能说明问题。我现在用star数最多的Spacemacs,将其dotspacemacs-editing-style改成’emacs,这样做肯定损失了不少优势,但与purcell emacs.d、Prelude和Centaur Emacs一样方便,总体感觉比这三者都要好。例如在配置LaTeX、cdlatex、org mode都相较简便得多,少折腾,只需在user init()中填上latex、org,在additional-packages填上’(cdlatex)就够了。

有一个疑惑,就是使用原生Emacs方式的人多吗?这样使用Emacs是不是已不是主流了?时常羡慕vim的那种操作方式。

原生 emacs + 自己从头攒的配置,主要是开始用 emacs 时候,还没有诸如 spacemacs 之类的,就开始自己从 头写配置文件,然后后来看着谁的好,就抄过来,一点一点攒到现在。

如果有感兴趣的可以瞅瞅:

https://github.com/yangyingchao/tubo-env/tree/master/.emacs.d

但是在Windows操作系统下利用系统自带方式输入中文(Emacs自带的中文输入似乎比较弱)时太痛苦了,按Esc键后不能自动转成英文输入方式。

Vim 也存在这个问题吧,都是通过插件解决的。

Emacs 下我用的 https://github.com/laishulu/emacs-smart-input-source 这个。

用自己的方式使用。别人的再好也是别人的,只有你自己知道自己最需要什么。Emacs 给了你这种可能性让你完全控制自己的编辑器,那就好好利用它。

windows下实现简单的输入法配合evil-state切换可以这样(w32-set-ime-open-status好像emacs27之后的版本才有):

  (defun emacs-ime-disable ()
	(w32-set-ime-open-status nil))

  (defun emacs-ime-enable ()
	(w32-set-ime-open-status t))

(add-hook 'evil-insert-state-entry-hook #'emacs-ime-enable)

(add-hook 'evil-motion-state-entry-hook #'emacs-ime-disable)
(add-hook 'evil-normal-state-entry-hook  #'emacs-ime-disable)
(add-hook 'evil-replace-state-entry-hook #'emacs-ime-disable)
(add-hook 'evil-visual-state-entry-hook #'emacs-ime-disable)
(add-hook 'evil-emacs-state-entry-hook #'emacs-ime-disable)

(add-hook 'org-capture-after-finalize-hook #'emacs-ime-disable)

原帖

3 个赞

目前还在用doom 维护了自己的一份行chenbin fork的 lisp水平不加 慢慢搞

自己的配置,里面有自己的模式编辑 meow 来代替难用的 evil,再加上 emacs-rime 来解决中英文的问题。很轻量,很舒适。

1 个赞

在原生的基础上,加了一些自己的插件,输入法用的是 pyim,不存在你说的切换输入法问题,你也可以试试看。下面就是我的配置,你可以参考一下:

1 个赞

用大佬的包啊,sis就可以了。

1 个赞

Windows+spacemacs+微软拼音输入法(唯一中文输入法),设置不成功。我是这么做的

  1. 先安装sis,用package-install或package-list-package。

  2. 再dotspacemacs-additional-packages '(sis)

  3. 同时在user-init () 中加入(sis-ism-lazyman-config “1033” “2052” 'im-select)

你这个新发明的编辑模式我其实较早就知道了,一直没有研究,主要原因是general,大部分在服务器上或者其他编辑器中都是使用vim模式,感觉这个离不开了。在emacs中使用evil感觉还是有痛点,很多minor mode,或者一些常用的模式被evil覆盖掉,有点抓狂。你这个模式可以很好解决emacs和evil(vim模式编辑)兼容性的问题吗?

你说的是在emacs中C-\开始使用的那个吗?感觉比不上微软拼音输入法哦

在spacemacs中,用pyim,的确是进入正常模式就自动成为英文输入了

并不是 vim 一样的模式,但是从解决兼容性的角度讲我觉得应该是很好的,最好的例子就是你可以看我的 emacs 配置。

https://github.com/DogLooksGood/emacs.d/

不夸张的说,除了 init-modal.el 几乎其它文件看不到 meow 的影子。而且我的配置既不需要 use-package/leaf 也不需要 general。在 meow 的支撑下所有的配置模块都很简单。

至于其它编辑器,这个我目前没有太好的办法,我有打算把 meow 给 port 到其它编辑器,但是没想好到哪个。老实说我也不是很喜欢 electron 上面的那些,所以最后很可能是 neovim。

pyim,不是 emacs 自带的,是一个第三方包,实现的思路是在英文模式下智能转换为英文,你可以看下介绍:

还是比较喜欢原生的方式

Jackson-soft/emacs.d (github.com)

好像不能组词、整句输入,只能单字输入

原生方式的优点也很明显:地道的emacs、系统封闭、上手快 …,centaur emacs大神倡导的“大道至简”

可以输入词组,需要安装 pyim-basedict, 整句效果不好

1 个赞

以前刚开始的时候用了很久purcell emacs.d,当时看chenbin的介绍,决定站到巨人的肩膀上。但是巨人实在太高,想做自己的配置的时候到处搞不懂,不好配置,就转到vim,jetbrain,vscode去了。去年忍不住换回了emacs,现在慢慢的在自己配置。配置的时候主要看了下油管上的screencast起步。

我用 Doom Emacs,搭配一丁点非常简单的基于 Doom 辅助函数的自定义配置。

https://emacssurvey.org/2020/

https://emacssurvey.org/2020/is-your-configuration-based-on-any-starter-kit.svg 人数对比:

  1. 完全自己配置:51.4%
  2. Doom Emacs: 16.4%
  3. 默认配置:16.4%
  4. Spacemacs: 9.7%
  5. other: 4.5%
  6. prelude: 1.8%