当我按下Ctrl+时Backspace,有时会插入一个小方块,而不是删除整个单词。
该问题仅发生在某些文本框中;在其他文本框中,快捷方式可以正常工作。
开始菜单搜索框:有效
记事本:没有工作
Notepad2:有效
Firefox:有效
我正在运行 Windows 7 x64。
答案1
Ctrl您可以通过使用覆盖+Backspace快捷键来解决此问题自动热键. 将以下代码保存在具有给定文件名和扩展名的纯文本文件中,然后使用 AutoHotkey 启动该脚本:
FixCtrlBackspace.ahk
; how to write scripts: http://www.autohotkey.com/docs/
#IfWinActive ahk_class CabinetWClass ; File Explorer
^Backspace::
#IfWinActive ahk_class Notepad
^Backspace::
Send ^+{Left}{Backspace}
#IfWinActive
; source and context: http://superuser.com/a/636973/124606
; relevant documentation links:
; writing hotkeys
; http://www.autohotkey.com/docs/Hotkeys.htm
; list of key codes (including Backspace)
; http://www.autohotkey.com/docs/KeyList.htm
; the #IfWinActive directive
; http://www.autohotkey.com/docs/commands/_IfWinActive.htm
; the Send command
; http://www.autohotkey.com/docs/commands/Send.htm
你可能会发现从 GitHub 下载此脚本文件,而不是自己创建文件并粘贴其内容。
要在启动时自动启动此脚本,请将其快捷方式添加到“开始”菜单中的“启动”文件夹中,如中所述如何让程序在任何计算机启动时运行。
该脚本的基本思想是这样的:
^Backspace:: Send ^+{Left}{Backspace}
这会改变所有程序中的Ctrl+Backspace快捷键,使其相当于按Ctrl+ Shift+←来选择上一个单词,然后Backspace按 来删除它。
这种选择并删除的解决方法虽然比输入框要好,但很脆弱。在Ctrl+Backspace已经起作用的程序中,不启用此快捷方式更为安全。这就是为什么我使用#IfWinActive
将热键限制为仅我知道不支持该快捷方式的程序。
答案2
你看到的“盒子”就是所谓的控制字符显示该框的原因是,正如您所发现的,并非所有程序都能处理 ctrl+backspace 来删除单词。
此控制字符是 128 个字符中的 33 个“非打印”字符之一ASCII 字符编码方案。
答案3
在 MSDN 上找到这个博客...
Internet Explorer 小组早期的一些人使用了 Brief 编辑器,该编辑器使用 Ctrl+Backspace 作为删除上一个单词的快捷键,他们非常喜欢这个功能,以至于其中一人将其添加到自动完成处理程序中。因此,任何使用 SHAutoComplete 的编辑控件都将获得这个秘密的 Ctrl+Backspace 热键。
因此听起来如果应用程序不使用 SHAutoComplete,它将不支持该功能,除非应用程序的作者明确添加该功能。
PS control-delete 删除光标前面的单词
答案4
并非所有应用程序都以相同的方式处理键盘快捷键。记事本似乎无法处理此组合键,而是以自己的方式处理。