您尚未登录。

#1 2021-11-24 23:02:49

fighter90
会员
注册时间: 2021-05-24
帖子: 18

vim和spacemacs中文输入状态切换

输入中文时总是无比别扭,总是在反复按shift。

希望在输入中文时,能随着编辑器的状态自动切换输入法的中英文状态。

各位使用vim或者spacemacs的小伙伴,都在用怎么样的方案?

离线

#2 2021-11-25 00:25:29

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,431
个人网站

Re: vim和spacemacs中文输入状态切换

离线

#3 2021-11-25 09:50:54

fighter90
会员
注册时间: 2021-05-24
帖子: 18

Re: vim和spacemacs中文输入状态切换

已经放弃在vim中输入中文的想法了。

我看了一下,fcitx.vim包确实能够做到输入状态的切换。但是还是没有中文分词的工具,w e f这些常用的操作用起来无比痛苦。

而且据我考察,vim中文分词的问题,短期内没有解决的希望。

我觉得vim还是适合写代码,写英文,不想用它写中文了。

合适的工具做合适的事情嘛

离线

#4 2021-11-25 10:19:42

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,431
个人网站

Re: vim和spacemacs中文输入状态切换

我对在 Vim 中进行中文分词没有兴趣。以前是想过,后来考虑到「什么是一个词」的定义并不清晰,就懒得搞了。

离线

#5 2021-11-27 22:22:15

取名字这件事令我头疼
会员
所在地: 中国江西省
注册时间: 2021-08-06
帖子: 18
个人网站

Re: vim和spacemacs中文输入状态切换

Emacs 自动切换中英文可以使用 pyim,关于自动中英文切换可以查看它的文档,缺点是因为是纯 elisp 实现,所以它本身就比较慢。如果添加比较大的词库后会很慢,但是不添加的话体验很差

你也可以使用 emacs-rime(你应该知道 Rime 输入法),它调用系统的 Rime 输入法,因此使用起来与系统输入法几乎没有区别,还可以直接使用系统输入法的词库,并使用 Rime 输入法的配置文件进行配置。不过,你需要安装 Rime 输入法。安装的方法和相关配置可以在他们的 GitHub 找到

M-x、切换 buffer,或者使用 swiper 等场景,这两个输入法都会自动且换成英文模式

另外,我写了一个 rime 的 layer,你可以直接使用,这是它的 use-package 部分

(use-package rime
    :custom
    (default-input-method "rime")
    :config
    ;; rime-disable-predicates 是编辑代码时自动切换中英文的配置:如果在代码中,只有在注释和字符串里才可以输入中文。在别的场景中如 markdown,输入字母为大写或当前的中文字符之后有空格会自动切换为英文模式。此外,在一行的开头和以字母开头的英文字符串之后也会自动切换为英文模式
    (setq rime-disable-predicates 
          '(rime-predicate-prog-in-code-p
            rime-predicate-punctuation-line-begin-p
            rime-predicate-space-after-cc-p
            rime-predicate-current-uppercase-letter-p
            rime-predicate-after-alphabet-char-p))
    (setq mode-line-mule-info '((:eval (rime-lighter))))
    (setq rime-cursor "˰")
    :bind
    ("M-j" . 'rime-inline-ascii) ;; 临时强制开启输入中文
    ("S-SPC"   . 'toggle-input-method)) ;; 按 Shift + 空格 切换到 rime

如果你不知道怎么配置 Rime,可以直接使用现成的配置,知乎的这篇文章提到了,按 Ctrl + f 在该页面搜索 rime 即可找到


人生苦短,Manjaro 是岸

离线

#6 2021-11-28 15:05:41

tanloong
会员
注册时间: 2021-08-15
帖子: 28

Re: vim和spacemacs中文输入状态切换

在 vim 里想用 w/b 在中文的词汇之间移动光标,可以安装 coc.nvim 和 coc-ci。

https://github.com/neoclide/coc.nvim
https://github.com/fannheyward/coc-ci

最近编辑记录 tanloong (2021-11-29 21:02:51)

离线

页脚