20

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.

4

12 回答 12

24

找到了解决这个问题的方法,因为我刚刚经历过。因此,即使问题很老,也可以这样。

适用于 Windows 7,也许还有其他。我添加了中文、日文和韩文输入语言,因为我需要这些来进行一些开发。之后,我通过控制面板“更改键盘...”再次删除了它们。我一口气将它们全部删除并关闭了对话框。在此之后,所有语言仍然显示在语言栏中,我遇到了 Ctrl-Space 问题。

为了解决这个问题,我一次对每种语言执行以下操作: 1. 打开控制面板小程序“更改键盘...” 2. 添加语言的键盘(即中文) 3. 单击确定并退出控制面板 4.再次打开小程序并移除键盘。

该问题似乎是同时移除多个键盘时出现的错误。

于 2010-03-28T01:24:37.107 回答
9

博客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 中对我有用。

于 2011-03-11T13:08:07.593 回答
5

我已经知道这个 Windows 错误多年了。经过大量不满意的解决方法和一年一两次的无果搜索后,我试图找到解决方案,我终于找到了!

程序

  1. 转到Start> 输入regedit并启动它
  2. 导航HKEY_CURRENT_USER/Control Panel/Input Method/Hot Keys
  3. 选择名为:
    • 00000070对于Chinese (Traditional) IME - Ime/NonIme Toggle热键
    • 00000010对于Chinese (Simplified) IME - Ime/NonIme Toggle热键
  4. 在右侧子窗口中,有三个子键。
    • 键修饰符指定Alt/ Ctrl/ Shift/etc 并设置为Ctrl( 02c00000)。
    • 虚拟键指定完成键并设置为Space( 20000000)。
  5. 将第一个字节Key Modifiers从更改0200
  6. 将第一个字节Virtual Key从更改20FF
  7. 注销并重新登录。我认为没有必要重新启动。
  8. 不要更改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。

资料来源:

繁体中文袖珍输入法热键注册表设置

简体中文 MSPY 3.0 IME 热键注册表设置

于 2012-10-01T14:21:32.517 回答
4

这里的博客似乎正在讨论这个确切的问题。似乎即使从控制面板禁用热键也不起作用 - 由于操作系统中的一些错误,它们会自动重新启用。

提供的两种解决方案是:

  • “使用 GeoShell 等替代桌面外壳可以缓解这个问题。” (链接
  • “再安装一种语言。我在英文win XP上安装了日文和中文。然后,XP不再响应Ctrl-Space。” (链接
于 2008-10-07T16:29:51.370 回答
3

转到区域和语言选项控制面板。单击语言选项卡,然后单击详细信息... 按钮。单击密钥设置... 按钮。双击“输入语言的热键”列表中的每个条目,并确保未选中复选框。(如果是,取消选中它们并单击确定。)

您无需禁用语言栏,只需禁用热键即可。

于 2008-10-07T16:15:47.200 回答
2

You can also change the hot key for the language bar.

于 2008-10-07T15:47:01.910 回答
1

以下对我有用:

有一个 Windows 免费软件 AutoHotkey,例如,它可以让您将 F12 绑定到 Alt-a。

安装 AutoHotkey 并将 C-Space 绑定到 C-@。

将 C-Space 绑定到 C-Space 不起作用。

于 2008-12-15T19:04:49.270 回答
1

对我有用的简单技巧:

Ctrl+Windows+空格

按钮都在一个地方,因此它们可以同时按下。它们作为 Ctrl+Space 工作

于 2012-09-27T05:17:33.777 回答
1

我找到了这篇文章,它在 Vista 上对我有用。

  • 在运行对话框中打开“regedit.exe”
  • 浏览注册表编辑器到以下位置:HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\
  • 现在删除名称为:0000007x(x 表示任何数字)的注册表项
于 2011-11-09T05:05:35.760 回答
0

http://www.emacswiki.org/emacs/DisableImeForEmacs

于 2012-03-04T12:17:54.660 回答
0

在使用注册表查看并尝试了 Richard C 的答案之后......

我发现,在语言设置窗口中更改了我的所有键序列后,上面指定的注册表值已经更改了......所以没有编辑注册表,我重新启动并禁用了 Ctrl-Space 序列!

故事的寓意:如果某些东西在 Windows 中不能正常工作,请重新启动

于 2012-09-20T16:08:21.803 回答
0

愚蠢的方式,但是我的系统上打开了很多应用程序,所以只是从常规选项卡中删除了中文 - 已安装的服务。有效!

于 2016-05-24T18:32:55.223 回答