62 votes

Comment puis-je augmenter le taux de répétition des touches au-delà de la limite fixée par le système d'exploitation ?

J'ai la mauvaise habitude d'utiliser les touches de curseur de mon clavier pour naviguer dans le code source. C'est quelque chose que je fais depuis 15 ans et cela signifie bien sûr que ma vitesse de navigation est limitée par la vitesse du clavier. Sur Vista et OS X (je fais un double démarrage avec un MacBook), j'ai augmenté à fond la vitesse de répétition des touches. Mais dans Visual Studio, et dans d'autres applications, la vitesse est toujours beaucoup plus lente que je ne le voudrais.

Comment faire en sorte que la vitesse de répétition des touches soit plus rapide dans Visual Studio et dans d'autres éditeurs de texte ?

1voto

wprl Points 6139

Sur Mac, c'est option-flèche pour sauter un mot et + Shift + Arrow pour sélectionner. + Arrow passe à la fin ou au début d'une ligne ou à la fin ou au début d'un document. Il y a aussi les touches page précédente, page suivante, début et fin ;) Le maintien de la touche shift permet également de sélectionner ces touches.

1voto

head_thrash Points 393

Il semble que vous ne puissiez pas le faire facilement sous Windows 7.

Lorsque vous appuyez sur le bouton et le maintenez enfoncé, la vitesse est contrôlée par la clé de registre de Windows : HCU->Panneau de configuration->Clavier->Délai clavier.

En fixant ce paramètre à 0, vous obtenez un taux de répétition maximal. Le drame est que vous ne pouvez pas descendre en dessous de 0 si la vitesse de répétition est encore lente pour vous. 0-delay signifie que le délai de répétition est de 250ms. Mais, un délai de 250 ms est toujours aussi LENT. Voir ceci : http://technet.microsoft.com/en-us/library/cc978658.aspx

Vous pouvez toujours aller dans la rubrique Accessibilité, mais sachez que ces options sont destinées à aider les personnes handicapées à utiliser leur clavier, et non à aider les geeks qui tapent vite. Ils ne vous aideront pas. Utilisez Linux, vous disent-ils.

Je pense que la solution pour Windows réside dans le contrôle du matériel. Cherchez des pilotes spéciaux pour vos claviers ou essayez de modifier les pilotes existants.

1voto

It's Leto Points 380

Bien que la question date de plusieurs années, je rencontre toujours le même problème de temps en temps sur différents sites de développeurs. J'ai donc pensé que je pourrais proposer une solution alternative, que j'utilise dans mon travail quotidien de développeur (puisque les paramètres du registre Windows n'ont jamais fonctionné pour moi).

Ce qui suit est mon petit Autorepeat-script (~ 125 lignes), qui peut être exécuté via AutoHotkey_L (l'inconvénient est qu'il ne fonctionne que sous Windows, au moins Vista, 7, 8.1) :

; ====================================================================
; DeveloperTools - Autorepeat Key Script
;
; This script provides a mechanism to do key-autorepeat way faster
; than the Windows OS would allow. There are some registry settings
; in Windows to tweak the key-repeat-rate, but according to widely 
; spread user feedback, the registry-solution does not work on all 
; systems.
;
; See the "Hotkeys" section below. Currently (Version 1.0), there
; are only the arrow keys mapped for faster autorepeat (including 
; the control and shift modifiers). Feel free to add your own 
; hotkeys.
;
; You need AutoHotkey (http://www.autohotkey.com) to run this script.
; Tested compatibility: AutoHotkey_L, Version v1.1.08.01
; 
; (AutoHotkey Copyright © 2004 - 2013 Chris Mallet and 
; others - not me!)
;
; @author   Timo Rumland <timo.rumland ${at} gmail.com>, 2014-01-05
; @version  1.0
; @updated  2014-01-05
; @license  The MIT License (MIT)
;           (http://opensource.org/licenses/mit-license.php)
; ====================================================================

; ================
; Script Settings
; ================

#NoEnv
#SingleInstance     force
SendMode            Input 
SetWorkingDir       %A_ScriptDir%

; Instantiate the DeveloperTools defined below the hotkey definitions
developerTools      :=  new DeveloperTools()

; ========
; Hotkeys
; ========

    ; -------------------
    ; AutoRepeat Hotkeys
    ; -------------------

    ~$UP::
    ~$DOWN::
    ~$LEFT::
    ~$RIGHT::
        DeveloperTools.startAutorepeatKeyTimer( "" )
    return

    ~$+UP::
    ~$+DOWN::
    ~$+LEFT::
    ~$+RIGHT::
        DeveloperTools.startAutorepeatKeyTimer( "+" )
    return

    ~$^UP::
    ~$^DOWN::
    ~$^LEFT::
    ~$^RIGHT::
        DeveloperTools.startAutorepeatKeyTimer( "^" )
    return

    ; -------------------------------------------------------
    ; Jump label used by the hotkeys above. This is how 
    ; AutoHotkey provides "threads" or thread-like behavior.
    ; -------------------------------------------------------
    DeveloperTools_AutoRepeatKey:
        SetTimer , , Off
        DeveloperTools.startAutorepeatKey()
    return

; ========
; Classes
; ========

    class DeveloperTools
    {
        ; Configurable by user
        autoRepeatDelayMs       :=  180
        autoRepeatRateMs        :=  40

        ; Used internally by the script
        repeatKey               :=  ""
        repeatSendString        :=  ""
        keyModifierBaseLength   :=  2

        ; -------------------------------------------------------------------------------
        ; Starts the autorepeat of the current captured hotkey (A_ThisHotKey). The given
        ; 'keyModifierString' is used for parsing the real key (without hotkey modifiers
        ; like "~" or "$").
        ; -------------------------------------------------------------------------------
        startAutorepeatKeyTimer( keyModifierString )
        {
            keyModifierLength := this.keyModifierBaseLength + StrLen( keyModifierString )

            this.repeatKey := SubStr( A_ThisHotkey, keyModifierLength + 1 )
            this.repeatSendString := keyModifierString . "{" . this.repeatKey . "}"

            SetTimer DeveloperTools_AutoRepeatKey, % this.autoRepeatDelayMs
        }

        ; ---------------------------------------------------------------------
        ; Starts the loop which repeats the key, resulting in a much faster 
        ; autorepeat rate than Windows provides. Internally used by the script
        ; ---------------------------------------------------------------------
        startAutorepeatKey()
        {
            while ( GetKeyState( this.repeatKey, "P" ) )
            {
                Send % this.repeatSendString
                Sleep this.autoRepeatRateMs
            }
        }
    }
  1. Enregistrez le code ci-dessus dans un fichier texte (UTF-8), par exemple nommé "AutorepeatScript.ahk".
  2. Installer AutoHotkey_L
  3. Double-cliquez sur "AutorepeatScript.ahk" pour profiter de touches fléchées beaucoup plus rapides (ou placez le fichier dans votre dossier de démarrage automatique).

(Vous pouvez régler le délai et le taux de répétition dans le script, voir ' ; Configurable par l'utilisateur').

J'espère que cela vous aidera !

0voto

tzot Points 32224

Eh bien, ça pourrait être évident, mais :

  • Pour la navigation horizontale, Début (début de ligne), Fin (fin de ligne), Ctrl - Left (mot de gauche), Ctrl - Right (mot droit) fonctionnent dans tous les éditeurs que je connais.

  • Pour la navigation verticale, Page précédente, Page suivante, Ctrl - Home (début du texte), Ctrl - End (fin du texte) faire aussi

De plus (en passant), j'aimerais forcer mes touches Backspace et Delete à ne pas se répéter, de sorte que la seule façon de supprimer (ou de remplacer) du texte soit de premièrement marquez-le, puis le supprimer (ou taper le texte de remplacement).

-3voto

Mikael Jansson Points 3234

Ne naviguez pas caractère par caractère.

Dans Vim (voir ViEmu pour Visual Studio) :

  • bw -- mot précédent/suivant
  • () -- Phrase précédente/suivante (texte délimité par des points)
  • {} -- paragraphe précédent/suivant (sections de texte délimitées par des lignes blanches)
  • /? -- déplace le curseur jusqu'à l'occurrence précédente/suivante du texte trouvé (w// set incsearch )

De plus, chacun des mouvements prend un nombre comme préfixe qui vous permet de spécifier combien de fois il faut répéter la commande, par ex :

  • 20j -- sauter 20 lignes vers le bas
  • 3} -- trois paragraphes plus bas
  • 4w -- avancer de 4 mots
  • 40G -- passer à la ligne (absolue) numéro 40

Il existe très probablement des moyens équivalents de naviguer dans le texte dans votre éditeur. Si ce n'est pas le cas, vous devriez envisager de passer à un meilleur éditeur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X