I am learning and using Emacs. What I found annoying is that Ctrl-Space input will be stolen by Windows XP to switch the language bar instead of setting the mark in Emacs. The "language bar" is the native input languages selection such as Chinese keyboard other than English keyboard. Is there a way to temporarily prevent XP from stealing it? I have disabled the language bar from "Regional and language options" from Control Panel but the problem still exists. It doesn't happen on my Windows 2000 desktop at office but it happens on my work Windows XP laptop. Thank you very much.
12 回答
找到了解决这个问题的方法,因为我刚刚经历过。因此,即使问题很老,也可以这样。
适用于 Windows 7,也许还有其他。我添加了中文、日文和韩文输入语言,因为我需要这些来进行一些开发。之后,我通过控制面板“更改键盘...”再次删除了它们。我一口气将它们全部删除并关闭了对话框。在此之后,所有语言仍然显示在语言栏中,我遇到了 Ctrl-Space 问题。
为了解决这个问题,我一次对每种语言执行以下操作: 1. 打开控制面板小程序“更改键盘...” 2. 添加语言的键盘(即中文) 3. 单击确定并退出控制面板 4.再次打开小程序并移除键盘。
该问题似乎是同时移除多个键盘时出现的错误。
博客Sorting it all Out(在sundar的回答中提到)下的评论提到了这个解决方案:
- 打开 RegEdit 并导航到 HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys
- 查找具有以下值的“00000070”(繁体中文)或“00000010”(简体中文)键: Key Modifiers='02,c0'(控制) Virtual Key='20'(空格)
- 将这些值替换为,例如 Key Modifiers='FF,c0,00,00' 和 Virtual Key='FF'。
- 注销/重新登录(重要)。
这在 Windows 7 中对我有用。
我已经知道这个 Windows 错误多年了。经过大量不满意的解决方法和一年一两次的无果搜索后,我试图找到解决方案,我终于找到了!
程序
- 转到
Start
> 输入regedit
并启动它 - 导航
HKEY_CURRENT_USER/Control Panel/Input Method/Hot Keys
- 选择名为:
00000070
对于Chinese (Traditional) IME - Ime/NonIme Toggle
热键00000010
对于Chinese (Simplified) IME - Ime/NonIme Toggle
热键
- 在右侧子窗口中,有三个子键。
- 键修饰符指定Alt/ Ctrl/ Shift/etc 并设置为Ctrl(
02c00000
)。 - 虚拟键指定完成键并设置为Space(
20000000
)。
- 键修饰符指定Alt/ Ctrl/ Shift/etc 并设置为Ctrl(
- 将第一个字节
Key Modifiers
从更改02
为00
- 将第一个字节
Virtual Key
从更改20
为FF
- 注销并重新登录。我认为没有必要重新启动。
- 不要更改
Hot keys for input languages
控制面板中的,除非您想重新执行此操作。
备注:症状
每个注册表项(看起来像一个文件夹)都对应于您通常会在Control Panel > Region and Language > Keyboards and Languages > Change keyboards... > Advanced Key Settings > Hot keys for input languages
. 反复出现的错误是即使通过 GUI 更改热键也会自动重置为Ctrl+ 。space
这适用于 Windows 7 64 位,但根据我的研究,它似乎也适用于 XP 和 Vista。
资料来源:
转到区域和语言选项控制面板。单击语言选项卡,然后单击详细信息... 按钮。单击密钥设置... 按钮。双击“输入语言的热键”列表中的每个条目,并确保未选中复选框。(如果是,取消选中它们并单击确定。)
您无需禁用语言栏,只需禁用热键即可。
You can also change the hot key for the language bar.
以下对我有用:
有一个 Windows 免费软件 AutoHotkey,例如,它可以让您将 F12 绑定到 Alt-a。
安装 AutoHotkey 并将 C-Space 绑定到 C-@。
将 C-Space 绑定到 C-Space 不起作用。
对我有用的简单技巧:
Ctrl+Windows+空格
按钮都在一个地方,因此它们可以同时按下。它们作为 Ctrl+Space 工作
我找到了这篇文章,它在 Vista 上对我有用。
- 在运行对话框中打开“regedit.exe”
- 浏览注册表编辑器到以下位置:HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\
- 现在删除名称为:0000007x(x 表示任何数字)的注册表项
在使用注册表查看并尝试了 Richard C 的答案之后......
我发现,在语言设置窗口中更改了我的所有键序列后,上面指定的注册表值已经更改了......所以没有编辑注册表,我重新启动并禁用了 Ctrl-Space 序列!
故事的寓意:如果某些东西在 Windows 中不能正常工作,请重新启动!
愚蠢的方式,但是我的系统上打开了很多应用程序,所以只是从常规选项卡中删除了中文 - 已安装的服务。有效!