Skip to content

Instantly share code, notes, and snippets.

@lotem
Last active February 21, 2024 15:47
Show Gist options
  • Star 87 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save lotem/2981316 to your computer and use it in GitHub Desktop.
Save lotem/2981316 to your computer and use it in GitHub Desktop.
使用 Control 鍵切換中西文,上屏已輸入的編碼;令 Caps Lock 改變字母的大小寫
# 中西文切換鍵的默認設置寫在 default.yaml 裏面
# 以下的 default.custom.yaml 在全局範圍重定義該組快速鍵
#
# 可用的按鍵有 Caps_Lock, Shift_L, Shift_R, Control_L, control_R
# Mac 系統上的鼠鬚管不能區分左、右,因此只有對 Shift_L, Control_L 的設定起作用
#
# 已輸入編碼時按切換鍵,可以進一步設定輸入法中西文切換的形式。
# 可選的臨時切換策略有三:
# inline_ascii 在輸入法的臨時西文編輯區內輸入字母、數字、符號、空格等,回車上屏後自動復位到中文
# commit_text 已輸入的候選文字上屏並切換至西文輸入模式
# commit_code 已輸入的編碼字符上屏並切換至西文輸入模式
# 設爲 noop,屏蔽該切換鍵
#
# 如果要把 Caps Lock 設爲只改變字母的大小寫而不做中西文切換,可將 Caps_Lock 對應的切換方式設爲 noop
# 如果要以 Caps Lock 切換到西文模式,默認輸出小寫字母,請置 ascii_composer/good_old_caps_lock: false
# 如果要以 Caps Lock 切換到西文模式,默認輸出大寫字母,請使用以下設置:
patch:
ascii_composer/good_old_caps_lock: true
ascii_composer/switch_key:
Caps_Lock: commit_code
Shift_L: noop
Shift_R: noop
Control_L: commit_code
Control_R: commit_code
@BH2WFR
Copy link

BH2WFR commented Feb 9, 2023

我最开始也是想映射到不在键盘上的按键。不过RIME文档没找到怎么做。如果右ctrl常用,映射到pause键也行,就87配列键盘右上角那个键,用一辈子电脑了从来不知道这个键干啥用。完了用PowerToy把caps改成pause

我已经试验成功了,可以使用F13-F22这些键,你先用AutoHotkey把别的键映射到这边,然后再用rime这么设置

@Jasdent
Copy link

Jasdent commented Jul 9, 2023

问个问题,中文模式下,打了一些字符,未选择汉字前按 shift 是会有一个带下划线的待确认状态需要按 Enter 完成输出,请问能不能跳过这个状态直接把字符输出来并且切换到英文模式?
image

@fooooxxxx
Copy link

问个问题,中文模式下,打了一些字符,未选择汉字前按 shift 是会有一个带下划线的待确认状态需要按 Enter 完成输出,请问能不能跳过这个状态直接把字符输出来并且切换到英文模式? image

参考这个 https://gist.github.com/lotem/2981316
default.custom.yaml中加行配置就好了

patch:
  ascii_composer/switch_key/Shift_L: commit_code

@hqman
Copy link

hqman commented Sep 7, 2023

设置在输入时使用 CAPS_LOCK 清除正输入的码,而不影响目前的中文小写输入应该如何设置?

key_binder 设置 - {accept: "Caps_Lock", send: Escape, when: composing} 可以清空,但会自动切换到大写。

这个方法可用 👍

@saberluobo
Copy link

我用下面的代码实现了和win自带输入法非常接近的功能,唯一的区别就是在中文输入中打开大写的时候,按空格会将预选栏的大写输入内容直接删除,且不上屏,但是可以用回车上屏,各位可以试试
ascii_composer: good_old_shift_l: false switch_key: Shift_L: commit_code Shift_R: commit_text Control_L: noop Control_R: noop Caps_Lock: noop Eisu_toggle: inline_ascii

@curioyang
Copy link

问个问题,中文模式下,打了一些字符,未选择汉字前按 shift 是会有一个带下划线的待确认状态需要按 Enter 完成输出,请问能不能跳过这个状态直接把字符输出来并且切换到英文模式? image

previously_selected_schema: luna_pinyin_simp 就可以了 之前可能是luna_pinyin_fluency

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment