Ctrl + Backspace вставляет маленькую рамку вместо стирания

37107
Rory O'Kane

Когда я нажимаю Ctrl+ Backspace, иногда вставляется маленький квадрат вместо целого слова. Если я скопирую и вставлю здесь символ, я получу это: ``. Но в текстовом поле это выглядит не совсем так - просто белый прямоугольник с черной рамкой размером 1 пиксель.

Проблема возникает только в некоторых текстовых полях; в других ярлык работает так, как должен.

  • Стартовое окно поиска меню: работает
  • Блокнот: не работает

    small box created from Ctrl+Backspace in Notepad

  • Блокнот2: работает
  • Firefox: работает

Я использую Windows 7 x64.

34
Я получаю такое же поведение в блокноте в WinXP. djhowell 14 лет назад 1
Я также получаю такое поведение при переименовании файла в [File Explorer] (http://en.wikipedia.org/wiki/File_Explorer) в Windows 7. То есть, когда я выбираю файл, нажимаю `F2`, перемещаю курсор в конце слова, которое я хочу удалить, и попробуйте `Ctrl` +` Backspace`. Rory O'Kane 10 лет назад 1

4 ответа на вопрос

23
Rory O'Kane

Вы можете исправить это поведение, переопределив ярлык 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 ^+ #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 ^+ 

Это изменяет ярлык Ctrl+ Backspaceво всех программах, так что это эквивалентно нажатию Ctrl+ Shift+ , чтобы выбрать предыдущее слово, а затем Backspaceудалить его.

Этот обходной путь выбора и удаления, хотя и лучше, чем печатать поле, является хрупким. Безопаснее не включать этот ярлык в программах, в которых Ctrl+ Backspaceуже работает. Вот почему я использую #IfWinActiveэту горячую клавишу только для тех программ, которые, как я знаю, не поддерживают этот ярлык.

Очень помогло! Спасибо, что поделились своим ноу-хау. :) Martin Pfeffer 8 лет назад 0
15
Jared Harley

«Коробка», которую вы видите - это то, что известно как управляющий персонаж . Поле отображается, потому что, как вы обнаружили, не все программы обрабатывают клавишу Ctrl + Backspace, чтобы удалить слово.

Этот управляющий символ является одним из 33 «непечатаемых» символов в схеме кодирования символов ASCII из 128 символов .

Просто хотел добавить, что некоторые приложения справляются с этим еще хуже и фактически не отображают управляющий символ. Вы можете видеть это, когда ничего не происходит с `ctrl + backspace` и нажатие кнопки удаления, похоже, ничего не делает. Я думаю, что блокнот для Vista сделал это. Joshua 14 лет назад 0
Вставленный символ 127 - символ удаления. 14 лет назад 4
Link to [ASCII char 127, the delete character](http://en.wikipedia.org/wiki/Delete_character), on Wikipedia Rory O'Kane 10 лет назад 1
Это объясняет очевидное «что», но не «почему» :-( mafu 8 лет назад 0
10
djhowell

Нашел это в блоге MSDN ...

Несколько человек в первые годы существования группы Internet Explorer использовали редактор Brief, который использует Ctrl + Backspace в качестве сочетания клавиш для удаления предыдущего слова, и им настолько понравилось, что один из них добавил его в обработчик автозаполнения. Поэтому любой элемент управления для редактирования, который использует SHAutoComplete, получит эту секретную горячую клавишу Ctrl + Backspace.

Похоже, что если приложение не использует SHAutoComplete, оно не будет поддерживать эту функцию, если оно не было явно добавлено автором приложения.

PS control-delete удаляет слово перед курсором

Также в этой же статье чтение комментариев добавляет немного больше понимания: http://blogs.msdn.com/oldnewthing/archive/2007/10/11/5395501.aspx#5403635 heavyd 14 лет назад 1
0
th3dude

Не все приложения обрабатывают сочетания клавиш одинаково. Блокнот, кажется, не обрабатывает эту комбинацию клавиш и обрабатывает ее по-своему.

Похожие вопросы