Как я могу увеличить частоту повторения клавиш сверх предела ОС? - PullRequest
54 голосов
/ 05 октября 2008

У меня плохая привычка использовать клавиши курсора на моей клавиатуре для навигации по исходному коду. Это то, что я делал в течение 15 лет, и это, конечно, означает, что моя скорость навигации ограничена скоростью клавиатуры. И в Vista, и в OS X (у меня двойная загрузка MacBook) моя частота повторения клавиш увеличена до предела. Но в Visual Studio и других приложениях скорость по-прежнему намного ниже, чем мне хотелось бы.

Как повысить частоту повторения клавиш в Visual Studio и других текстовых редакторах?

Ответы [ 15 ]

75 голосов
/ 15 июня 2012

В Windows вы можете установить это с помощью системного вызова (SystemParametersInfo(SPI_SETFILTERKEYS,...)).

Я написал утилиту для себя: keyrate <delay> <repeat>.

Github репозиторий .

Полный источник на случай, если ссылка исчезнет:

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>

BOOL parseDword(const char* in, DWORD* out)
{
   char* end;
   long result = strtol(in, &end, 10);
   BOOL success = (errno == 0 && end != in);
   if (success)
   {
       *out = result;
   }
   return success;
}


int main(int argc, char* argv[])
{
   FILTERKEYS keys = { sizeof(FILTERKEYS) };

   if (argc == 1)
   {
      puts ("No parameters given: disabling.");
   }
   else if (argc != 3)
   {
      puts ("Usage: keyrate <delay ms> <repeat ms>\nCall with no parameters to disable.");
      return 0;
   }
   else if (parseDword(argv[1], &keys.iDelayMSec) 
         && parseDword(argv[2], &keys.iRepeatMSec))
   {
      printf("Setting keyrate: delay: %d, rate: %d\n", (int) keys.iDelayMSec, (int) keys.iRepeatMSec);
      keys.dwFlags = FKF_FILTERKEYSON|FKF_AVAILABLE;
   }

   if (!SystemParametersInfo (SPI_SETFILTERKEYS, 0, (LPVOID) &keys, 0))
   {
      fprintf (stderr, "System call failed.\nUnable to set keyrate.");
   }

   return 0;
}
30 голосов
/ 01 сентября 2010

Много раз я хочу центрировать функцию в моем окне. Прокрутка - единственный способ. Кроме того, Ctrl-левый / правый может все еще быть медленным в коде, где есть много несловарных символов. Я также использую клавиатуру. Хотя у меня есть пара вопросов. Во-первых, он иногда использует скорость по умолчанию вместо фактического значения, которое я установил. Другой иногда игнорирует начальную задержку. Я все еще нахожу это очень полезным все же. Они сказали 4 года назад, что выпустят источник через 6 месяцев ...: (

Хорошо, по предложению кого-то, кто изменил HCU \ ... \ Keyboard Response, это хорошо работает для меня.

[HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response]
"AutoRepeatDelay"="250"
"AutoRepeatRate"="13"
"BounceTime"="0"
"DelayBeforeAcceptance"="0"
"Flags"="59"

Стандартная задержка автоматического повтора Windows. Частота повторения 13 мс (77 символов в секунду). флаги включается FilterKeys? Эти значения читаются при входе в систему. Не забудьте выйти и снова войти, чтобы это вступило в силу.

29 голосов
/ 09 января 2009

В Mac OS X откройте список глобальных настроек

open ~/Library/Preferences/.GlobalPreferences.plist

Затем измените поле KeyRepeat. Меньшие числа ускорят вашу скорость курсора. В диалоговом окне настроек будет установлено только минимум 2, поэтому, если вы перейдете к 0 или 1, вы получите более быстрый курсор.

Мне пришлось перезагрузиться, чтобы это вступило в силу.

8 голосов
/ 11 апреля 2009

Я использую KeyboardKing на моем ПК. Это бесплатная программа, которая может увеличить частоту повторения до 200, что вполне достаточно. Я рекомендую установить приоритет процесса на Высокий для еще более плавных ходов и меньшего количества «повторных блокировок», которые случаются иногда и очень раздражают С высоким приоритетом, он отлично работает.

Никто не понимает, почему мы движемся по стрелкам. Это смешно.

8 голосов
/ 05 октября 2008

Для Windows откройте regedit.exe и перейдите к HKEY_CURRENT_USER\Control Panel\Keyboard. Измените KeyboardSpeed ​​по своему вкусу.

7 голосов
/ 08 февраля 2009

Visual Assist имеет возможность удвоить ваши эффективные движения клавиш в Visual Studio, которые я использую все время.

5 голосов
/ 27 июня 2009

Keyboard preferences window

Как уже упоминалось в hyperlogic , в Mac OS X внутри есть два параметра, относящихся к скорости клавиатуры: KeyRepeat и InitialKeyRepeat. В Системных настройках они отображаются на ползунки Key Repeat Rate и Delay Until Repeat. Диапазоны ползунка и соответствующие значения внутренних параметров (в скобках) показаны ниже. Похоже, они являются множителями интервала выборки клавиатуры 15 мс.

Key Repeat Rate (KeyRepeat)                 Delay Until Repeat (InitialKeyRepeat)
|--------------------------------|          |----------------------|-----------------|
slow (120)                      fast (2)    off (30000)            long (120)        short (25)
0.5 char/s                      33 char/s       

К счастью, эти параметры могут быть установлены вне предопределенных пределов непосредственно в файле ~/Library/Preferences/.GlobalPreferences.plist. Я нашел следующие значения, наиболее удобные для себя:

KeyRepeat = 1         --> 1/(1*15 ms) = 66.7 char/s
InitialKeyRepeat = 15 --> 15*15 ms = 225 ms

Обратите внимание, что в последних версиях Mac OS X ползунки названы немного по-другому.

3 голосов
/ 01 сентября 2010

Для OS X расширение ядра KeyRemap4MacBook позволит вам точно настроить все виды параметров клавиатуры, среди которых частота повторения клавиш (я установил для себя значение 15 мс, и оно работает хорошо).

3 голосов
/ 05 октября 2008

Мне нравится работать только на клавиатуре. Зачем? Потому что, когда вы используете мышь, вы должны схватить ее. Потеря времени.

С другой стороны, иногда кажется, что каждое приложение имеет свои собственные встроенные скорости набора клавиатуры. Не говоря уже о свойствах BIOS или настроек ОС. Поэтому я собрал ярлыки, которые могут быть довольно быстрыми (т. Е. Вы быстрее набираете Ctrl + вправо (стрелка) -право-вправо, чем удерживаете палец правой клавиши (стрелка):).

Вот некоторые сочетания клавиш, которые я считаю наиболее ценными (это работает в Windows; я не уверен насчет OS X):

ctrl-right: Go to the end of the previous/the next word (stated before)
ctrl-left:  Go to the beginning of the previous/the word before (stated before)
ctrl-up:    Go to the beginning of this paragraph
            (or to the next paragraph over this)
ctrl-down:  Go to the end of this paragraph
            (or to the next paragraph after this)
ctrl-pos1:  Go to the beginning of the file
ctrl-end:   Go to the end of the file

Все это может быть объединено с клавишей Shift, так что текст выделяется при этом. Теперь давайте перейдем к более странным вещам:

alt-esc:     Get the actual application into the background
ctrl-esc:    This is like pressing the "start-button" in Windows: You can
             navigate with arrow keys or shortcuts to start programs from here
ctrl-l:      While using Firefox this accesses the URL-entry-field to simply
             type URLs (does not work on Stack Overflow :)
ctrl-tab,
ctrl-pageup
ctrl-pagedwn Navigate through tabs (even in your development environment)

Так что это наиболее часто используемые ярлыки, которые мне нужны при программировании.

3 голосов
/ 05 октября 2008

Я не знаю, как ускориться до предела, но я знаю, как пропустить дальше одним нажатием. Мои знания только в Windows, так как у меня нет Mac, чтобы сделать это. Ctrl + Arrow пропускает слово, и в зависимости от редактора может просто перейти к следующему разделу пробела. Вы также можете использовать Ctrl + Shift + Arrow, чтобы выбрать слово в любом направлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...