导航功能

如何使用HJKL VI式导航,手指不离开热区完成绝大多数操作。

基本导航功能

  • H, J, K, L, U, I, O, P 被用作基本导航键,分别映射为←↓↑→⇞↖↘⇟(左下上右/PgUp/Home/End/PgDn),位于图中粉色区域。
  • 基本导航键配合左侧修饰键可启用多种导航功能,默认配置了9个控制平面
  • 按住 ⌘ Command,效果为文本选择,额外按住⌥ Option 时,选择单位会变为前后词语上下3行
  • 按住⇧ Shift 的效果为应用/窗口/标签切换,按住⌃ Control 的效果为桌面管理
  • 按住 ⌥ Option 效果为🖱️鼠标移动, 额外按下⇧Shift将移速翻倍 ⏫。 (U, I, O, P 映射为鼠标左击,右击,后退,前进)。
  • 按住⇧⌥将导航键变为 🖲️ 鼠标滚轮,⇧⌘移速翻倍 。其中HJKL为正常滚动,UIOP自然滚动(反向)。
功能 移动 选择 快速选择 窗口管理 桌面管理 🖱️ 🖱️⏫ 🖲️ 🖲️⏫
键\修饰 ⌘⌥ ⇧⌃ ⇧⌥ ⇧⌘
H ⬅️ 左选一字 左选一词 先前Tab 上个桌面 ⬅️ ⬅️⏫ ⬅️ ⬅️⏫
J ⬇️ 下选一行 下选三行 切换应用 聚焦窗口 ⬇️ ⬇️⏫ ⬇️ ⬇️⏫
K ⬆️ 上选一行 上选三行 先前应用 暴露所有 ⬆️ ⬆️⏫ ⬆️ ⬆️⏫
L ➡️ 右选一字 右选一词 切换Tab 下个桌面 ➡️ ➡️⏫ ➡️ ➡️⏫
U PgUp 选至上页 选至上页 缩小 全屏 🖱️L 🖱️L ➡️ ➡️
I Home 选至行首 尾至行首 上个窗口 隐藏窗口 🖱️R 🖱️R ⬆️ ⬆️⏫
O End 选至行尾 首至行尾 切换窗口 隐藏所有 🖱️B 🖱️B ⬇️ ⬇️⏫
P PgDn 选至下页 选至下页 放大 启动菜单 🖱️F 🖱️F ⬅️ ⬅️⏫

方向键导航

  • 方向键 ←↓↑→ 用于模拟 🖱️鼠标移动。额外按住 ⌥ Option ⏬ 减速,额外按住 ⌘ Command ⏫ 加速
  • 按住 ⇧Shift 切换至 🖲️滚轮移动。额外按住 ⌥ Option ⏬ 减速,额外按住⌘ Command ⏫ 加速
  • 按下↩回车键为鼠标左键单击,配合⌘⌥⌃⇧使用时会相应转化为鼠标的右键,中键,后退键,前进键。
功能 🖱️ 🖱️⏬ 🖱️⏫ 🖲️ 🖲️⏬ 🖲️⏫
键\修饰 ⇧⌥ ⇧⌘
←↓↑→ 移速=1600 移速÷2 移速×2 滚速=32 滚速÷2 滚速×2
🖱️L 🖱️M 🖱️R 🖱️L 🖱️B 🖱️F

设计思路

导航键包括:,,Home,End,PgUp,PgDn,提供了一套通用的光标移动操作。不过这些键都远离核心键区,导致移动光标需要把右手移开,这一点煞是恼人。最好是将这些导航键映射到右手的核心键区,通过按下Capslock键启用,同时需要在移动光标的同时,对文本选取的功能(Shift)提供良好支持。

选择功能

按下Capslock时,传统的VIM导航键h,j,k,l映射为方向键,而将这四个键上方的u,i,o,p分别映射为PageUp,Home, End,PageDown ,提供全局的导航操作。另一方面,因为左手需要按下Capslock,右手需要控制导航键,都不适合按下两侧的Shift键进入文本选择模式,这时候比较好的选择是由左手大拇指同时按下⌘(Mac)或Alt(Win),将组合键映射为导航键+Shift提供文本选取支持。

这样,vim的导航不仅可以在vim的所有模式中使用,也可以在系统中全局使用了。

鼠标移动

鼠标移动功能由 ⌥ 触发。因为这个修饰键是仅次于 ⌘ 第二好按的额外修饰键。很适合放置高频操作。

在鼠标移动过程中,默认的速度是比较适中的(1600),避免光标移动太快定位不准。但如果需要大范围的移动鼠标,这样就太慢了。

因此在移动鼠标的时候,额外按住 Shift上档,就可以将鼠标移动速度翻倍。

鼠标滚动

鼠标滚动也提供两种模式,常速与快速。

常速模式按下⇧⌥触发。也就意味着左下角三个修饰键需要一起按下,这样左手的姿势会离开热区。

因为滚动操作不同于光标移动,通常处于一种随意的浏览状态中,所以将其放置在一个手腕需要移动的控制平面上。

最后修改 2021-03-13: update docs (8cf5bd7)