Emacs 28 新特性介绍

https://emacstalk.github.io/post/009/

网络不好的可以访问下面链接:

之前论坛内的相关讨论:

7 个赞

新增方法 w32-set-ime-open-status ,用于控制输入法切换,可以在 evil 切到 normal 模式时自动切到英文。社区内相关讨论[

这个方法很好,就是不知道 Mac 下是否也有同样的机制(RSI 在不远处召唤)

原生的emacs没有切换输入法的功能。Emacs Mac Port 有切换输入法的功能,但是只能把输入法从一个输入法换成另外一个,如从Rime切换成系统自带的英文输入法。没法像在windows中,一个输入法内切换中英文。我在emp的代码中没找到如何在一个输入法内切换中英文。

windows有非常详细的输入法api文档。macos很难找到文档,对开发人员实在是不友好。

1 个赞

那个 SLIME 问题解决了吗?
:confounded:

叹气ing,这一点太不友好

我在 Emacs Mac Port 上面使用这个包管理输入法,挺好的。

用 Rime 的也可以使用 https://github.com/DogLooksGood/emacs-rime

1 个赞

感觉没必要这么精细,能自动切换中英文输入法就很好了。切换同一个输入法内的中英文有什么优势?

macos中emacs有2个方法自动切换输入法:

  1. 用外部程序。论坛里的sis的程序macism https://github.com/laishulu/macism/ 。用evil的话,在mode切换时调用。这个方法有时候切换不了。我用了一段时间后放弃了。

  2. 参考emacs mac port的代码,修改emacs的代码。现在用的是这个方法。

好处是在windows上,能记住insert mode的中英文状态,从normal mode进入insert mode时状态会变成之前的中英文状态。

方便发个 diff 文件嘛?或者在那里能看到你的修改。

好的,在家里的黑苹果上,我回家找找。

更新了下文章,macOS 支持 Xwidget 的 committer 竟然是个韩国美少女?

明明是两个 :dog:

图片

1 个赞

不好意思,现在才回复你。macOS切换输入法的代码一直在我的HP笔记本的黑苹果上,今天刚搬到macbook air上,请查考 https://github.com/georgealbert/emacs/commit/608944db3b6bed057ec3c2aaf175b5800267bb84

只改了src/nsfns.m一个文件。只需要(mac-select-input-source)函数即可。代码是从emacs-mac-port上抄过来的,今天本来想参考MacVim的代码改一下,学习了一下,有点麻烦。算了,有空再玩吧。

我是这样配置的:

(if (eq system-type 'darwin)
    (progn
      (defun emacs-ime-disable ()
        ;; (start-process "set-input-source" nil "/usr/local/bin/macism" "com.apple.keylayout.ABC"))
        (mac-select-input-source "com.apple.keylayout.ABC"))

      (defun emacs-ime-enable ()
        ;; (start-process "set-input-source" nil "/usr/local/bin/macism" "im.rime.inputmethod.Squirrel.Rime"))
        (mac-select-input-source "im.rime.inputmethod.Squirrel.Rime"))

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

4 个赞

请按耐住你们内心乱撞的小鹿。

图片上的两个韩国妹子分别叫 JIAE 和 SUJEONG,是偶像团体 lovelyz 的成员:

image

Github 这位大概率是个肥宅。

12 个赞

大陆妹还是最美

:+1: 够硬核,好东西不怕晚,春节放假回去试试。

I nearly shocked :flushed: