キーボードの繰り返しで修飾キーへのCaplockの再マッピングが失敗する


2

このスーパーユーザーの回答に基づいて、Caps lockキーをCtrl+ Alt+に再マッピングしましたShift

; Caps lock becomes ctrl+alt+shift
*CapsLock::
  SetKeyDelay -1
  Send {Blind}{Ctrl DownTemp}{Alt DownTemp}{Shift DownTemp}
return

*CapsLock up::
  SetKeyDelay -1
  Send {Blind}{Ctrl Up}{Alt Up}{Shift Up}
return

そして、Vimスタイルのナビゲーションを取得するためhjklに、矢印キーに再マッピングしようとしました。まったく機能しないいくつかのアプローチを試しました。単一キーを押すだけで機能するため、次のアプローチを採用しました。しかし、たとえば、Caps lockJEclipseでCtrlAltJ押したままにすると、単に行をたどる代わりにキーボードショートカットが起動します。自動キーボードリピートでのみオフになり、元のキープレスではオフになりません。

^!+h::
  Send {Left}
  Send {Blind}{Ctrl DownTemp}{Alt DownTemp}{Shift DownTemp}
return

^!+j::
  Send {Down}
  Send {Blind}{Ctrl DownTemp}{Alt DownTemp}{Shift DownTemp}
return

^!+k::
  Send {Up}
  Send {Blind}{Ctrl DownTemp}{Alt DownTemp}{Shift DownTemp}
return

^!+l::
  Send {Right}
  Send {Blind}{Ctrl DownTemp}{Alt DownTemp}{Shift DownTemp}
return

20行押すことで20行下にスクロールするのJは面倒です。誰かが解決策を持っていますか、または何かを不適切に使用していますか?他のいくつかのコマンドをマップしCaps lockCapslockWin(技術的には^!+および^!+#にマップします)ので、修正してもそれらを壊さないことが望まれます。例えば:

; Caps lock + i becomes escape
^!+i::
  Send {Escape}
  Send {Blind}{Ctrl DownTemp}{Alt DownTemp}{Shift DownTemp}
return

私はEscキーを押し続ける必要がなかったので、これは今すぐうまくいきます。ありがとう!


Ctrl + Alt + Shiftを使用する必要がある特別な理由はありますか?CapsLockに変数を切り替えるだけで、これがより簡単/簡単になると思います。
エリオットデノルフ

Ctrl + Alt + Shiftを使用していたのは、衝突を心配することなく他のプログラムでホットキーを設定できるという利点もあったためです。しかし、それでも私の試みではうまくいきませんでしたので、以下のソリューションに切り替えても何も失われませんでした。
ダニエルコバーマン

回答:


2

これは、現在行っていることに対する一種の代替手段です。私はそれを作ったので、CapsLock単に変数を切り替えますcmd。この変数に基づいて、移動キーが有効になります。これらのキーのいずれかを保持して、複数回繰り返すことができます。

また、いくつかのメソッドも提供しましたが、今のところはやり過ぎかもしれませんが、後で役立つかもしれません。

*CapsLock::    cmd := 1
*CapsLock up:: cmd := 0

#if cmd
    h::Key("left")
    j::Key("down")  
    k::Key("up")    
    l::Key("right")
    n::Key_repeat("^", "left")
    p::Key_repeat("^", "right")
#if

Key(key)
{
   SendInput {blind}{%key%}
}

Key_repeat(pfx, key)
{
    SendInput {blind}%pfx%{%key%}
}

どうもありがとう、これは私の問題を解決します。#ifおよびautohotkeyメソッドの構文も知っておくと役立ちます。
ダニエルコバーマン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.