AHK VIM 导航热键

AHK VIM 导航热键

目前我正在使用以下代码来更改键盘布局:

// vim.ahk
CapsLock::Send, {CTRLDOWN}{SHIFTDOWN}{SHIFTUP}{CTRLUP}{CTRLUP}
    return
!^CapsLock::CapsLock

CapsLock & j  :: Send {Down}
CapsLock & k  :: Send {Up}
CapsLock & h  :: Send {Left}
CapsLock & l  :: Send {right}
CapsLock & p  :: Send {PGUP}
CapsLock & `; :: Send {PGDN}
CapsLock & ^  :: Send {home}
CapsLock & $  :: Send {end}

这个代码是否足够稳定?问题是,CapsLock有时

更新:我发现CapsLock当按下除上述键以外的任何键时,它都会打开。(hkll;pae

答案1

将其添加到脚本的顶部。

SetCapsLockState, AlwaysOff

!^CapsLock::CapsLock

它应该停止所有您未创建的 Capslock 事件。

http://www.autohotkey.com/docs/commands/SetNumScrollCapsLockState.htm

答案2

我不再摆弄CapsLock 作为修饰键由于一致性推理(如果你没有在别人的电脑上安装它,你将会非常迷茫)。因此,CapsLock我使用ALT+SHIFT (!+)修饰符,因为它不常见,但仍然足够舒适,可以轻松达到。我可以up/down/left/right (kjhl)像 Vim 那样使用 AutoHotkey 复制箭头键,但在使用 Windows ALT+TAB 时无法导航这些键(请参阅下文了解我是如何意外找到解决方案的)。

然后,我偶然发现了一个解决方案,可以在 Windows ALT+TAB 上使用 Vim 导航键而不会消失。我无法解释它,但它确实有效,我将发布我当前的设置并向您展示我偶然发现的不同之处。

AHK VIM 导航热键

如果这些键不适合您,请根据您的喜好进行更改。我只是更喜欢shortnavigation-keys (up/down/left/right)匹配的 vim,并且只为longnavigation-keys (home/end/pgup/pgdn)

!+[::SendInput, {Escape} !+k::SendInput, {Up} !+j::SendInput, {Down} !+h::SendInput, {Left} !+l::SendInput, {Right} !+p::SendInput, {Home} !+u::SendInput, {End} !+o::SendInput, {PgUp} !+i::SendInput, {PgDn} !+0::SendInput, ^{Tab} ; tabmove-forward !+9::SendInput, !^{Tab} ; idk why, but doesn't tabmove-backward

WIN ALT+TAB 带 VIM-NAVIGATIONKEYS(静态菜单,由于之前按下了另一个热键

  • 启用!+9::SendInput, !^{Tab}
    • 按下 ALT+SHIFT+9 后,继续按住 ALT+SHIFT 并使用 kjhl 导航 :D

WIN ALT+TAB 带 VIM-NAVIGATIONKEYS(不能,因为菜单已关闭

  • ALT+TAB
    • 现在继续按住 Alt,然后按住 Shift,然后开始使用模仿的 vim 导航键即 kjhl,注意窗口消失了:(
笔记
  • 常用键是用于基本功能的典型键,例如剪切/复制/粘贴和选项卡切换,所有这些键都只使用一个修饰键和一个按键的组合,除非用于 Windows 虚拟桌面导航
    • 例如,Windows 虚拟桌面切换使用 CTRL+WIN+LEFT/RIGHT
    • 最好还是使用普通热键,不要对其进行过多的自定义,除非你能证明你的方法更好
  • 短导航键和长导航键有什么区别?
    • 短导航键:上/下/左/右
    • 长导航键:home/end/pgup/pgdn

相关内容