目前我正在使用以下程式碼來更改鍵盤佈局:
// 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-navigationkeys 而不會消失。我無法解釋它,但它確實有效,我將發布我當前的設定並向您展示與我偶然發現的差異。
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 導覽鍵 (靜態選單,由於先前按下了另一個熱鍵)
- 啟用
!+9::SendInput, !^{Tab}
- 按 ALT+SHIFT+9 後,繼續按住 ALT+SHIFT 並使用 kjhl 進行導覽:D
WIN ALT+TAB 和 VIM 導覽鍵 (不能,因為菜單關閉)
ALT+TAB
- 現在繼續按住 Alt,然後再按住 Shift,現在開始使用模仿的 vim 導航鍵這是 kjhl,注意視窗消失了:(
- 常用鍵是用於剪切/複製/貼上和選項卡切換等基本功能的典型鍵,所有這些鍵僅使用一個修飾符和單個按鍵的組合,除非用於 Windows 虛擬桌面導航
- 例如 Windows 虛擬桌面切換使用 CTRL+WIN+LEFT/RIGHT
- 最好仍然使用普通的熱鍵,並且不要對其進行過多的自定義,除非您能證明為什麼您的方法更好
- 短導航鍵和長導航鍵有什麼不同?
- 短導航鍵:上/下/左/右
- 長導航鍵:home/end/pgup/pgdn