Autohotkey 卡普斯洛克移位修饰符

Autohotkey 卡普斯洛克移位修饰符,autohotkey,Autohotkey,我想一个AHK脚本,将禁用Capslock,除非当使用箭头键作为主页和结束(有和没有文本选择)的快捷方式。我相信它看起来会像这样,但我不知道如何将Shift键包含为修改器,所以我可能也会选择文本 Capslock::Return Capslock & Right::End Capslock & Left::Home Capslock & Right & Shift::End (with Selection) Capslock & Left & Sh

我想一个AHK脚本,将禁用Capslock,除非当使用箭头键作为主页和结束(有和没有文本选择)的快捷方式。我相信它看起来会像这样,但我不知道如何将Shift键包含为修改器,所以我可能也会选择文本

Capslock::Return
Capslock & Right::End
Capslock & Left::Home
Capslock & Right & Shift::End (with Selection)
Capslock & Left & Shift::Home (with Selection)

此自动热键脚本应实现您想要实现的功能:

注意:在某些键盘上,很难甚至不可能让某些组合键充当热键,特别是当有多个非修改键时,例如CapsLock和Right不是修改键,而Shift/Ctrl/Win/Alt是

注意:我无法获取
!CapsLock::CapsLock
开始工作。很久以前,在经历了大量的尝试和错误之后,我找到了一些工作代码来为CapsLock分配不同的组合键,我在下面介绍了这些代码

Capslock::Return

Capslock & Right::
if GetKeyState("Shift", "p")
SendInput +{End}
else
SendInput {End}
Return

Capslock & Left::
if GetKeyState("Shift", "p")
SendInput +{Home}
else
SendInput {Home}
Return

;!CapsLock::CapsLock

!CapsLock::
SetStoreCapslockMode, Off
SendInput {CapsLock}
SetStoreCapslockMode, On
Return

从许多不幸被遗忘的地方复制粘贴、试用和恐怖是我的解决方案

如您所见,我已将
alt Capslock
映射到normal
Capslock

Capslock
自身连接到
Esc

按照相同的模式,我试图用
+Capslock&h::Send{Backspace}
抓住
shift Capslock
alt Capslock
,但AHK抱怨语法不好。
您还可以看到
恰好有一个特殊的注释,这是因为我更改了键盘,而该键有时是
有时
ö

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.

SetCapsLockState AlwaysOff

; Toggle Capslock with alt-Capslock.
!CapsLock::CapsLock

; Esc.
CapsLock::Send {Esc}

; Arrows.
CapsLock & j::Send {Left}
CapsLock & k::Send {Right}
CapsLock & SC027::Send {Down} ; or CapsLock & `;::Send {Down}
CapsLock & l::Send {Up}
CapsLock & u::Send ^{Left}
CapsLock & i::Send ^{Right}

; Backspace and Del.
CapsLock & h::Send {Backspace}

; Home and End.
CapsLock & m::Send {Home}
CapsLock & ,::Send {End}

; Mark word left.
CapsLock & y::Send ^+{Left}

@etune,这个页面有你所缺少的所有信息:任何第一次使用自动热键的人都应该阅读。我已经阅读了所有文档。无法使Shift修饰符工作。我可以使用alt作为
中的修饰符!CapsLock::CapsLock
使alt CapsLock的行为与普通CapsLock相同。通过
+CapsLock…
映射移位失败,显示消息
热键无效
。没有深入研究这个问题,我怀疑有一个bug,或者重新映射capslock是很棘手的,而shift capslock不允许自己以这种方式处理。