Ctrl + Backspace wstawia małe pole zamiast kasowania

40

Kiedy naciskam Ctrl+ Backspace, czasami wstawiany jest mały kwadrat zamiast całego słowa. Jeśli skopiuję i wkleję znak tutaj, otrzymuję: ``. Ale nie wygląda tak w polu tekstowym - jest to po prostu biały prostokąt z czarną ramką 1px.

Problem występuje tylko w niektórych polach tekstowych; w innych skrót działa tak, jak powinien.

  • Pole wyszukiwania w menu Start: działa
  • Notatnik: nie działa

    małe pudełko utworzone z Ctrl + Backspace w Notatniku

  • Notepad2: działa
  • Firefox: działa

Korzystam z systemu Windows 7 x64.

Rory O'Kane
źródło
1
Takie samo zachowanie pojawia się w notatniku w WinXP.
djhowell
2
Takie zachowanie pojawia się również podczas zmiany nazwy pliku w Eksploratorze plików w systemie Windows 7. To znaczy, kiedy wybieram plik, naciśnij F2, przesuń kursor na koniec słowa, które chcę usunąć, i spróbuj Ctrl+ Backspace.
Rory O'Kane

Odpowiedzi:

25

Możesz naprawić to zachowanie, zastępując skrót Ctrl+ Backspaceza pomocą AutoHotkey . Zapisz następujący kod w zwykłym pliku tekstowym z podaną nazwą pliku i rozszerzeniem, a następnie uruchom skrypt za pomocą 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

Pobranie tego pliku skryptu z GitHub może być łatwiejsze niż samodzielne tworzenie i wklejanie jego zawartości.

Aby uruchomić ten skrypt automatycznie podczas uruchamiania, dodaj do niego skrót do folderu Autostart w menu Start, zgodnie z opisem w temacie Uruchamianie programu podczas uruchamiania na dowolnym komputerze .

Podstawowa idea skryptu jest następująca:

^Backspace:: Send ^+{Left}{Backspace}

Spowoduje to zmianę skrótu Ctrl+ Backspacewe wszystkich programach, tak aby odpowiadał naciśnięciu Ctrl+ Shift+ , aby wybrać poprzednie słowo, a następnie Backspaceje usunąć.

To obejście zaznaczania i usuwania, choć lepsze niż pisanie w polu, jest kruche. Bezpieczniej jest nie włączać tego skrótu w programach, w których Ctrl+ Backspacejuż działa. Dlatego używam #IfWinActiveograniczenia skrótu tylko do programów, które znam, nie obsługują tego skrótu.

Rory O'Kane
źródło
19

„Pole”, które widzisz, to tak zwana postać kontrolna . Pole jest wyświetlane, ponieważ, jak odkryłeś, nie wszystkie programy obsługują kombinację klawiszy ctrl + backspace, aby usunąć słowo.

Ten znak kontrolny jest jednym z 33 znaków „niedrukowalnych” w 128 -znakowym schemacie kodowania znaków ASCII .

Jared Harley
źródło
Chciałem tylko dodać, że niektóre aplikacje radzą sobie z tym jeszcze gorzej i faktycznie nie wyświetlają znaku kontrolnego. Możesz to zobaczyć, gdy nic się nie dzieje, ctrl+backspacea naciśnięcie klawisza usuwania wydaje się nic nie robić. Myślę, że Notatnik dla Vista to zrobił.
Joshua
5
Wstawiony znak to 127 - znak usuwania.
1
Link do znaku ASCII char 127, usuwanego znaku , na Wikipedii
Rory O'Kane
To wyjaśnia oczywiste „co”, ale nie „dlaczego” :-(
mafu
14

Znaleziono to na blogu MSDN ...

Kilka osób na początku grupy Internet Explorer używało Krótkiego edytora, który używa Ctrl + Backspace jako klawisza skrótu do usuwania poprzedniego słowa, i podobało im się tak bardzo, że jedna z nich dodała go do modułu autouzupełniania. Dlatego każda kontrola edycji, która używa SHAutoComplete, zyska ten tajny skrót Ctrl + Backspace.

Wygląda więc na to, że jeśli aplikacja nie korzysta z SHAutoComplete, nie będzie obsługiwać tej funkcji, chyba że zostanie ona wyraźnie dodana przez autora aplikacji.

PS Control-delete usuwa słowo przed kursorem

djhowell
źródło
1
Również w tym samym artykule czytanie komentarzy dodaje nieco więcej wglądu: blogs.msdn.com/oldnewthing/archive/2007/10/11/…
heavyd
0

Nie wszystkie aplikacje obsługują takie same skróty klawiaturowe. Notatnik wydaje się nie obsługiwać tej kombinacji klawiszy i obsługuje ją na swój własny sposób.

th3dude
źródło