60

ソース コードをナビゲートするためにキーボードのカーソル キーを使用するという悪い癖があります。これは私が 15 年間行ってきたことであり、これはもちろん、私のナビゲート速度がキーボードの速度によって制限されることを意味します。Vista と OS X (私は MacBook をデュアル ブートします) の両方で、キーのリピート レートを最大にしています。しかし、Visual Studio やその他のアプリでは、速度は私が好むよりもずっと遅いままです。

Visual Studio やその他のテキスト エディターでキーのリピート レートを速くするにはどうすればよいですか?

4

15 に答える 15

84

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;
}
于 2012-06-15T18:58:38.433 に答える
32

多くの場合、関数をウィンドウの中央に配置したいと思います。スクロールが唯一の方法です。また、単語以外の文字がたくさんあるコードでは、Ctrlキーを押しながら左/右に移動すると速度が低下する可能性があります。私もキーボード操作を使用します。しかし、私にはいくつかの問題があります。1つは、設定した実際の値ではなく、デフォルトの速度を使用する場合があります。もう1つは、初期遅延を無視する場合があります。それでも私はそれがとても便利だと思っています。彼らは4年前に6ヶ月でソースをリリースすると言いました...:(

OK、HCU \ ... \ Keyboard Responseを変更した誰かの提案で、これは私にとってうまく機能します。

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

Windows標準のAutoRepeat遅延。13ミリ秒(77文字/秒)の繰り返し速度。フラグはFilterKeysをオンにしますか?これらの値はログイン時に読み取られます。これを有効にするには、ログアウトしてから再度ログインすることを忘れないでください。

于 2010-09-01T17:29:38.493 に答える
31

Mac OS Xで、グローバル設定plistを開きます

open ~/Library/Preferences/.GlobalPreferences.plist

次に、KeyRepeatフィールドを変更します。数値が小さいほど、カーソル速度が速くなります。設定ダイアログでは最小値が2に設定されるだけなので、0または1に移動すると、カーソルが速くなります。

これを有効にするには、再起動する必要がありました。

于 2009-01-09T19:54:56.417 に答える
8

Visual Assist には、私がいつも使用している Visual Studio での効果的なキーの動きを 2 倍にするオプションがあります。

于 2009-02-07T21:46:30.360 に答える
8

Windows の場合、regedit.exe を開いて に移動しHKEY_CURRENT_USER\Control Panel\Keyboardます。好みに合わせて KeyboardSpeed を変更します。

于 2008-10-05T04:59:30.423 に答える
8

PCでKeyboardKingを使用しています。これはフリーウェアで、リピート率を最大 200 まで上げることができます。これで十分です。プロセスの優先度を高に設定することをお勧めします。これにより、移動がさらにスムーズになり、時々発生して非常に煩わしい「繰り返しロック」が少なくなります。優先度が高いため、完全に機能します。

なぜ矢印でナビゲートするのか誰も理解していません。それはおかしいです。

于 2009-04-11T06:44:40.290 に答える
6

キーボード設定ウィンドウ

hyperlogicで述べたように、Mac OS X では、内部的に、キーボードの速度を扱う 2 つのパラメーターがあります:KeyRepeatInitialKeyRepeat. 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 リビジョンでは、スライダーの名前が少し異なることに注意してください。

于 2009-06-27T07:20:49.660 に答える
3

私はキーボードだけで作業するのが好きです。なんで?あなたがマウスを使うとき、あなたはそれをつかまなければならないからです。時間の損失。

一方、すべてのアプリケーションに独自のキーボードタイプレートが組み込まれているように見える場合があります。BIOSプロパティやOS設定からは言うまでもありません。だから私はかなり速くできるショートキーを集めました(つまり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)

したがって、これらはプログラミング中に必要な最もよく使用されるショートカットです。

于 2008-10-05T02:46:33.107 に答える
3

限界を超えて加速する方法はわかりませんが、1回のプレスでさらにスキップする方法は知っています。これを行う Mac がないため、私の知識は Windows だけです。Ctrl+Arrowは単語をスキップし、エディターによっては空白の次のセクションにスキップする場合があります。Ctrl+ Shift+Arrowを使用して、単語を任意の方向に選択することもできます。

于 2008-10-05T01:38:34.383 に答える
3

OS X の場合、カーネル エクステンション KeyRemap4MacBook を使用すると、あらゆる種類のキーボード パラメータを微調整できます。その中には、キーのリピート レートがあります (私は 15 ミリ秒に設定しましたが、うまく機能します)。

于 2010-09-01T11:32:59.797 に答える
1

Macでは、オプション-矢印で単語をスキップして⌥</kbd>+Shift+Arrow to select. ⌘</kbd>+Arrow skips to the end or beginning of a line or the end or beginning of a document. There are also the page up, page down, home and end keys ;) Holding shift selects with those too.

于 2008-10-05T02:26:20.327 に答える
1

Windows7ではこれを簡単に行うことはできないようです。

ボタンを押し続けると、速度はWindowsレジストリキー(HCU->コントロールパネル->キーボード->キーボード遅延)によって制御されます。

このパラメータを0に設定すると、最大リピート率が得られます。ドラマは、リピート速度がまだ遅い場合、0を下回ることはできないということです。0-delayは、繰り返し遅延が250msであることを意味します。しかし、250msの遅延はまだ地獄のように遅いです。これを参照してください:http ://technet.microsoft.com/en-us/library/cc978658.aspx

あなたはまだアクセス可能性に行くことができます、しかしあなたはそれらのオプションが障害者が彼らのキーボードを使うのを助けることであり、速くタイプするオタクのために助けを与えることではないことを知っているべきです。彼らは助けにはなりません。Linuxを使用してください、彼らはあなたに言います。

Windowsのソリューションは、ハードウェア制御にあります。キーボード用の特別なドライバーを探すか、既存のドライバーを微調整してみてください。

于 2012-04-14T13:50:38.077 に答える
0

まあ、それは明らかかもしれませんが、

  • 水平方向のナビゲーションの場合、Home (行頭)、End (行末)、Ctrl- Left(左の単語)、Ctrl- Right(右の単語) は、私が知っているすべてのエディターで機能します。

  • 垂直方向のナビゲーションでは、Page Up、Page Down、Ctrl- Home(テキストの開始)、Ctrl- End(テキストの終了) も行います。

また(補足として)、テキストを削除(または置換)する唯一の方法は、最初にマークしてから削除する(または置換文章)。

于 2008-10-06T09:59:55.900 に答える
-3

文字ごとにナビゲートしないでください。

Vim の場合 ( Visual Studio の場合はViEmuを参照):

  • bw-- 前/次の単語
  • ()-- 前/次の文 (ピリオドで区切られたテキスト)
  • {}-- 前/次の段落 (空白行で区切られたテキストのセクション)
  • /?-- 見つかったテキストの前/次の発生にカーソルを移動します (w/ set incsearch)

さらに、各動きには、コマンドを繰り返す回数を指定できるようにするプレフィックスとして数字が使用されます。たとえば、次のようになります。

  • 20j-- 20 行下にジャンプ
  • 3}-- 3 段落下
  • 4w-- 4 語前に移動
  • 40G-- (絶対) 行番号 40 に移動します。

エディターでテキストをナビゲートするには、ほとんどの場合同等の方法があります。そうでない場合は、より良いものに切り替えることを検討する必要があります。

于 2008-10-05T04:35:54.667 に答える