原生输入法切换:smart-input-source ,配合evil使用更佳。

我的也是最新版的macOS和xcode,看着像是libxml2的问题。

@shuxiao9058 我之前用的是 command line tools , 但是前几天升级 command line tools 之后,就出现了这个问题。 然后我装了xcode,然后把编译工具切到xcode上去,就OK了。 sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer 就OK了。

多谢,按照你说的可以了,现在安装完成了 ~

@Jousimies package升级了,增加了一个选项 smart-input-source-aggressive-line,默认支持跨空行检测上下文,关掉的话则上下文检测只包括前后行。

:+1: 回去就更新。

大佬,inline-english模式能不能关闭?

@Jousimies

“这是一个测试 inline english region<Enter>" 这个时候,inline english region就结束了。

或者你的意思,
不是关闭正在打开中的inline english region,
而是是关闭 inline english region的触发?

后一种的话,我加了个变量
smart-input-source-with-inline-english
默认值是t(开启),你把它设成nil就可以了。

注意:melpa一般有几个小时的延后才会更新代码。
所以,你需要到本项目的主页上,
确认melpa的版本已更新,不是之前的20200428版本

brew cask 安装的emacs-mac,没加任何参数,直接 brew cask install emacs-mac 用的doom,在package.el中直接加上(package! smart-input-source)然后在 config中(use-package smart-input-source),然后就直接可以调用系统的sougou拼音,大大方便了输入和切换,非常感谢!

@yejzh

你加了hook了没?

(use-package! smart-input-source
	  :config
	  (add-hook! '(text-mode-hook prog-mode-hook)
	             #'smart-input-source-mode))

我也用的是doom,我的配置如下:

我是新手,刚才没加hook时不能自动在文本模式中启用这个smart-input :sweat_smile:

新手啊,
直接把我的配置拷过去就行了。 然后 doom sync 一下。

新手出错了,mac spacemacs。

Error (use-package): smart-input-source/:config: Wrong type argument: symbolp, (turn-on-evil-mc-mode text-mode-hook-identify)

添加了 (use-package smart-input-source :config (setq smart-input-source-english-input-source “com.apple.keylayout.US”) (setq smart-input-source-other-input-source “com.sogou.inputmethod.sogou.pinyin”) (add-hook 'text-mode-hook #'smart-input-source-mode) (add-hook 'prog-mode-hook #'smart-input-source-mode))

还在 dotspacemacs-additional-packages添加了, smart-input-source

@chinhant 不知道啊,没用过spacemacs。
仅仅从配置上来说,看不出来有什么问题。
你配置完了,安装了这个包没有呢?
doom下的话,doom sync 安装
spacemacs,应该至少可以 M-x 然后 package-install 吧。。

谢谢,安装了,等spacemacs的大佬成功了,再过几天吧。谢谢!

@chinhant

为解答你的问题,我刚才专门下载了spacemacs,
研究了一下,很简单啊。

你这么做

  1. 打开 ~/.spacemacs文件
  2. 找到这一行:dotspacemacs-additional-packages, 改成
    dotspacemacs-additional-packages '(smart-input-source)
    
  3. 找到这一行(defun dotspacemacs/user-config (), 在函数体里面加入下列代码:
    (use-package smart-input-source
     :config
     (setq smart-input-source-english-input-source
         "com.apple.keylayout.US")
     (setq smart-input-source-other-input-source
         "com.sogou.inputmethod.sogou.pinyin")
     (add-hook 'text-mode-hook #'smart-input-source-mode)
     (add-hook 'prog-mode-hook #'smart-input-source-mode))
    

@chinhant

另外,
spacemacs个人使用配置的代码脏兮兮,乱糟糟的。
doom要干净整洁的多。

spacemacs的功能doom也都有,就是<space>前导键嘛。
你既然是新手,不如切换到doom.

  1. 下载下面这个目录:conf/emacs at master · laishulu/conf · GitHub
  2. 把你的emacsd备份一下:mv ~/.emacs.d ~/.emacs.d.bak
  3. 运行config.sh文件:source config.sh

输入法最大的问题就是不确定性, 这样增加了输入法状态的不确定性真的好吗.

@sona

对于evil用户来说,因为要频繁在normal和insert模式切换,是刚需。
原生emacs用户来说,那就是锦上添花的事情了。

主动切换是很保守的:在最小化虚警率的前提下,才考虑减少漏警率。

@chinhant

spacemacs 用上了 smart-input-source 了没?
我前面给你贴了在spacemacs下的配置方法。

谢谢,在spacsmacs下试验了,重启时,仍然报错:

Error (use-package): smart-input-source/:config: Wrong type argument: symbolp, (turn-on-evil-mc-mode text-mode-hook-identify)