web-dev-qa-db-fra.com

Ctrl + Backspace dans une petite boîte au lieu d'effacer

Quand j'appuie Ctrl+BackspaceParfois, un petit carré est inséré au lieu de l’effacement de la totalité de la Parole. Si je copie et colle le caractère ici, j'obtiens ceci: Mais cela ne ressemble pas vraiment à cela dans la zone de texte - c’est juste un rectangle blanc avec une bordure noire de 1px.

Le problème ne se produit que dans certaines zones de texte. dans d’autres, le raccourci fonctionne comme il se doit.

  • Boîte de recherche du menu Démarrer: travaux
  • Bloc-notes: ne fonctionne pas fonctionne

    small box created from Ctrl+Backspace in Notepad

  • Notepad2: fonctionne
  • Firefox: fonctionne

J'utilise Windows 7 x64.

39
ugh

Vous pouvez corriger ce problème en remplaçant le Ctrl+Backspace raccourci utilisant AutoHotkey . Enregistrez le code suivant dans un fichier texte avec le nom de fichier et l'extension donnés, puis lancez le script avec 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

Vous trouverez peut-être plus facile de téléchargez ce fichier script depuis GitHub , plutôt que de créer le fichier et de le coller vous-même dans son contenu.

Pour lancer ce script automatiquement au démarrage, ajoutez un raccourci au dossier de démarrage de votre menu Démarrer, comme décrit dans la section Comment exécuter un programme au démarrage sur n’importe quel ordinateur .

L'idée de base du script est la suivante:

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

Cela change le Ctrl+Backspace raccourci dans tous les programmes pour qu’il soit équivalent à appuyer sur Ctrl+Shift+, pour sélectionner le mot précédent, puis Backspace, pour le supprimer.

Cette solution de contournement de sélection-suppression, bien que préférable à la saisie d'une boîte, est fragile. Il est plus sûr de ne pas activer ce raccourci dans les programmes dans lesquels Ctrl+Backspace fonctionne déjà. C’est pourquoi j’utilise #IfWinActive pour limiter le raccourci clavier aux seuls programmes que je connais ne prend pas en charge ce raccourci.

24
Rory O'Kane

La "boîte" que vous voyez est ce qu'on appelle un caractère de contrôle . La boîte est affichée car, comme vous l'avez découvert, tous les programmes ne gèrent pas le raccourci ctrl + retour arrière pour supprimer un mot.

Ce caractère de contrôle est l’un des 33 caractères "non imprimables" du schéma de codage de caractères ASCII à 128 caractères .

17
Jared Harley

Trouvé ceci sur un blog MSDN ...

Au début du groupe Internet Explorer, quelques personnes utilisaient l'éditeur Brief, qui utilisait Ctrl + Backspace comme touche de raccourci pour supprimer le mot précédent, et ils l'aimaient tellement que l'un d'entre eux l'a ajouté au gestionnaire de saisie semi-automatique. Par conséquent, tout contrôle de saisie utilisant SHAutoComplete obtiendra ce raccourci clavier Ctrl + Retour arrière secret.

Il semble donc que si l'application n'utilise pas SHAutoComplete, elle ne prendra pas en charge la fonctionnalité à moins qu'elle ait été explicitement ajoutée par l'auteur de l'application.

P.S. control-delete supprime le mot devant le curseur

12
djhowell

Toutes les applications ne gèrent pas les raccourcis clavier de la même manière. Le Bloc-notes ne semble pas gérer cette combinaison de touches et la gère à sa manière.

0
th3dude