可以分享下pyim使用rime输入法的配置吗?

回家吃顿好的,没想到老王给送了这么大的中秋礼物! :smile:

我已经可以在Emacs正常使用了,目前发现有几点与fcitx-rime不同的地方:

  1. 一般的方案没问题,但用不了并击(combo)方案;
  2. 符号是fcitx的,不是RIME自定义方案中的;
  3. 反查也是可用的,但前缀会上屏。

我再去试试其他的。

不要用git版,arch装git版,模块加载的时候会在google::log代码段错误

pyim自带的反查功能是和pyim内置词库配合的, 内置词库是有前缀的

我用ubuntu ibus-rime 不用额外配置就能直接使用,,,,

我指的是rime的反查,通常我会音码形码合成一个方案,其中一个放在反查里用。pyim的还没用过

大佬啊,我用rime的微软双拼,输入需要用到 ;号,但是pyim的rime方案里,rest-chars没有;号,我在你的源码里加上了,我想问问这种情况有更好的办法吗,不修改源码的办法

按照rime-quanpin的样子新加一个rime-wrshuangpin 就可以了,可以 用push 加

你用稳定版emacs就啥事没有啊,用27干嘛

想问一下pyim在中文模式下怎么输出英文标点?我老是要空一格取消智能模式才能输入英文标点符号。

(defun pyim-punctuation-toggle ()
  "Pyim 标点符号全角半角模式切换命令.

每次运行 `pyim-punctuation-toggle' 命令,都会调整变量
`pyim-punctuation-translate-p' 的取值,`pyim-translate' 根据
`pyim-punctuation-full-width-p' 函数的返回值,来决定是否转换标点
符号:

1. 当返回值为 'yes 时,`pyim-translate' 转换标点符号,从而输入全角标点。
2. 当返回值为 'no 时,`pyim-translate' 忽略转换,从而输入半角标点。
3. 当返回值为 'auto 时,根据中英文环境,自动切换。"
  (interactive)
  (setq pyim-punctuation-translate-p
        `(,@(cdr pyim-punctuation-translate-p)
          ,(car pyim-punctuation-translate-p)))
  (message
   (cl-case (car pyim-punctuation-translate-p)
     (yes "开启全角标点输入模式。")
     (no "开启半角标点输入模式。")
     (auto "开启全半角标点自动转换模式。"))))

非常感谢,感觉pyim比较顺滑,就是感觉输入法有点儿笨笨的,没用搜狗拼音好用, 尤其是我很容易拼错,很多时候敲一大堆拼音字符要一个一个选出来,不知道是是不是字库的问题? 我用全拼。 比如说,搜狗输入法你只要敲“woyongquanp”,就会显示出"我用全拼" 但pyim你敲“woyongquanp”,先会显示"我yong’quan’p,然后你得选择1.我 之后它显示"我涌泉 => yong quan p ,然后你得选择2,纠正它…一直下去。 感觉比较影响中文输入效率呢?

可能我用的是pyim包,没有使用rime作为后端,所以不满足长句输入吗?

我看到好像librime已经添加到msys2包里了?是不是可以 pacman -S librime安装了呢?

but

pacman -S librime
错误:未找到目标:librime

还没有入仓库,估计还的等一段时间:Pending Package Updates - MSYS2 Packages

你可以试试emac-rime, 直接使用rime作为后端。
open issue 里面已经有大佬成功在windows上安装,并且给出了详细步骤。我今天刚用上,很棒。

我已经成功将librime提交到了 msys2 ,估计以后安装就简单许多

1 个赞

谢谢哈,这位哥们的第一步编译librime我都没能成功编译 我先用smart-input-source 调用外部输入法撑一撑把 :sweat_smile:

  1. 编译librime
    这步可以偷懒,直接用编译好的liberime。 解压后,只要将下图的几个文件拷贝到emacs安装目录/bin 可以了。

image

如果安装目录已经有的dll,用系统自带的也行,那么只要拷贝librime.dll即可。

同时将解压的文件夹中的rime-data文件留着后续配置emacs时作为rime-share-data-dir

  1. 编译 librime-emacs.dll
    git clone emacs-rime 仓库
    安装好gcc,直接用cmd shell cd 到 emac-rime直接gcc: 先将 librime.dll rime_levers_api.h rime_api.h (librime就是上述解压出来的,其他两个在librime的src下面,见下图)复制到emacs-rime项目下,执行以下命令:
    gcc lib.c -o librime-emacs.dll -O2 -shared -I. -I/path/to/emacs/include -L. -llibrime

比如的我的路径是:D:\emacs-28.0.50\include 则执行以下命令:
gcc lib.c -o librime-emacs.dll -O2 -shared -I. -ID:\emacs-28.0.50\include -L. -llibrime
编译如果报错,一般是某个.h文件未找到,加上-I路径即可;librime.dll找不到,在-L后面加上路径即可。

image
编译好的librime-emacs.dll 也复制到emacs 安装目录 /bin下。

  1. Emacs 配置
    这里我是参考论坛大佬猫哥的配置,当然也可以根据官方文档,或者用use-package:
    只要将emacs-rime加入到load-path 就可以直接用下面的配置。

配置上主要是要设置两个路径:
rime-user-data-dir 如果不设置,默认是"~/.emacs.d/rime, 这里直接拷贝小狼毫的用户配置文件即可。一般是在 %appdata%下的Rime文件夹。
rime-share-data-dir 设置上述第一步解压出来的rime-data文件夹,我只保留了opencc这个文件夹。

;;; Require
(require 'rime)

;;; Code:
(when (eq system-type 'windows-nt)
  (setq rime-user-data-dir "~/.emacs.d/emacs-rime/Rime")
  (setq rime-share-data-dir "~/.emacs.d/emacs-rime/data")
  (setq rime-posframe-properties
        (list :background-color "#333333"
              :foreground-color "#dcdccc"
              :font "华文楷体"
              :internal-border-width 10)))

(setq default-input-method "rime"
  rime-show-candidate 'posframe)
  1. 启动后,使用快捷键启动rime输入法,默认好像是C-\, 第一次会自动部署,然后自己执行一次同步命令,就可以同步系统rime的词库了。 M-x rime-sync

谢谢!可奇怪的是,我明明已经把所有的dll都生成了,并且都放到/path/emacs/bin 路径下了,可为何使用

toggle-input-method

它仍然要编译呢?真是怪

然后我跑到elpa里去看,rime包是最新的0415,里面居然有一个makefile,
于是尝试修改makefile
```
ifdef LIBRIME_ROOT
	CFLAGS  += -I ${LIBRIME_ROOT}include/
	LDFLAGS  += -L ${LIBRIME_ROOT}lib/ -Wl,-rpath ${LIBRIME_ROOT}lib/ -lrime
else
	CFLAGS   += -I /d/emax64pd/bin/
	LDFLAGS  += -L /d/emax64pd/bin/ -llibrime
endif
```
我没有设置 LIBRIME_ROOT变量,直接改到我的emacs路径地址,
好不容易编译通过,它显示了done
![e4|690x34](upload://5clEJIg4v2jCAcGq18RTMB6dJWy.jpeg) 
然后直接卡死了。
![e2|516x304](upload://ermtGTBRdOEksIVerio7scAlb2o.jpeg) 
我用的emacs是别人编译过的。

e2