Ctrl + Backspace insère une petite boîte au lieu d'effacer

40

Lorsque j'appuie sur Ctrl+ Backspace, il arrive que l'on insère un petit carré à la place du mot entier. Si je copie et colle le caractère ici, j'obtiens ceci: Mais cela ne ressemble pas tout à fait à cela dans la zone de texte - il s'agit simplement d'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

    petite boîte créée à partir de Ctrl + Backspace dans le Bloc-notes

  • Notepad2: fonctionne
  • Firefox: fonctionne

J'utilise Windows 7 x64.

Rory O'Kane
la source
1
Je reçois le même comportement dans le bloc-notes sous Windows XP.
djhowell
2
J'obtiens également ce comportement lorsque je renomme un fichier dans l' Explorateur de fichiers sous Windows 7. Lorsque je sélectionne un fichier, appuyez sur F2, déplacez le curseur à la fin du mot que je veux supprimer et essayez Ctrl+ Backspace.
Rory O'Kane

Réponses:

25

Vous pouvez corriger ce problème en remplaçant le raccourci Ctrl+ à l' Backspaceaide de 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écharger ce fichier de script à partir de 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 Procédure d'exécution d'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 raccourci Ctrl+ Backspacedans tous les programmes pour qu'il soit équivalent à appuyer sur Ctrl+ Shift+ , sélectionner le mot précédent, puis le Backspacesupprimer.

Cette solution de contournement de sélection-suppression, bien que préférable à la saisie d'une boîte, est fragile. Il est préférable de ne pas activer ce raccourci dans les programmes dans lesquels Ctrl+ Backspacefonctionne déjà. C'est pourquoi j'utilise #IfWinActivesouvent le raccourci clavier uniquement pour les programmes dont je sais qu'ils ne prennent pas en charge ce raccourci.

Rory O'Kane
la source
19

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 .

Jared Harley
la source
Je voulais juste ajouter que certaines applications le gèrent encore plus et n’affiche pas le caractère de contrôle. Vous pouvez le voir lorsque rien ne se passe ctrl+backspaceet que vous appuyez sur la touche Suppr ne semble rien faire. Je pense que le bloc-notes pour Vista l'a fait.
Josué
6
Le caractère inséré est 127 - le caractère de suppression.
1
Lien vers le caractère de suppression 127, ASCII , sur Wikipedia
Rory O'Kane
Ceci explique le 'quoi' évident, mais pas le 'pourquoi' :-(
mafu
14

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. 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 modification 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.

PS control-delete supprime le mot devant le curseur

djhowell
la source
1
En outre sur ce même article, la lecture à travers les commentaires ajoute un peu plus de perspicacité: blogs.msdn.com/oldnewthing/archive/2007/10/11/...
heavyd
0

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.

th3dude
la source