Ctrl + Backspace вставляє невелике поле замість стирання


40

Коли я натискаю Ctrl + Backspace, іноді вставляється невеликий квадрат, замість того, щоб все слово було стерто. Якщо я скопіюю тут і вставте символ, я отримаю таке: ``. Але це виглядає не зовсім так у текстовому полі - там просто звичайний білий прямокутник з чорною облямівкою 1px.

Проблема трапляється лише в деяких текстових полях; в інших клавіша швидкого доступу працює як слід.

  • Вікно пошуку меню "Пуск": працює
  • Блокнот: не працює

    невелика скринька, створена з Ctrl + Backspace у Блокноті

  • Блокнот2: працює
  • Firefox: працює

Я працюю під Windows 7 x64.


1
У мене така ж поведінка в блокноті в WinXP.
djhowell

2
Таку поведінку я також отримую при перейменуванні файлу у Провідник файлів у Windows 7. Тобто, коли я вибираю файл, натискаю F2, переміщую курсор до кінця слова, яке я хочу видалити, та спробуйте Ctrl+ Backspace.
Rory O'Kane

Відповіді:


25

Ви можете виправити цю поведінку, змінивши ярлик 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://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для обмеження гарячої клавіші лише ті програми, які, як я знаю, не підтримують цей ярлик.


19

"Коробка", яку ви бачите, - це те, що відомо як контрольний символ . Поле відображається тому, що, як ви виявили, не всі програми обробляють ctrl + backspace для видалення слова.

Цей керуючий символ є одним із 33 символів, що не друкуються у схемі кодування символів ASCII 128 символів .


Просто хотілося додати, що деякі програми справляються з цим ще гірше і насправді не відображають символу управління. Ви можете це бачити, коли нічого не відбувається, ctrl+backspaceа натискання видалення, здається, нічого не робить. Я думаю, що блокнот для Vista зробив це.
Джошуа

5
Символ, що вставляється, - 127 - символ видалення.

1
Посилання на символ символу видалення ASCII 127, у Вікіпедії
Rory O'Kane

Це пояснює очевидне "що", але не "чому" :-(
mafu

14

Знайдено це на блозі MSDN ...

Кілька людей у ​​перші дні групи Internet Explorer використовували редактор коротких даних, який використовує Ctrl + Backspace як клавішу швидкого доступу, щоб видалити попереднє слово, і їм це сподобалось, що один з них додав його до обробника автозаповнення. Тому будь-який контроль редагування, який використовує SHAutoComplete, отримає цю таємну гарячу клавішу Ctrl + Backspace.

Таким чином, це здається, що якщо програма не використовує SHAutoComplete, вона не підтримуватиме цю функцію, якщо її явно не додав автор програми.

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


1
Також у цій самій статті, читаючи коментарі, додаємо трохи більше розуміння: blogs.msdn.com/oldnewthing/archive/2007/10/11/…
важкий

0

Не всі програми обробляють комбінації клавіш однаково. Здається, Блокнот не справляється з цією комбінацією клавіш і обробляє її по-своєму.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.