标准键位
框架保留一小组键,并给每个已挂载缓冲区一套导航键位;其余按键都是应用数据,通过 :keys 或会话 :keymap 声明。下表按情境列出标准键位。Host 声明的键会遮蔽挂载缓冲区内同键的绑定,框架键不能重绑,未绑定的键继续落到缓冲区其余按键表。
| 键 | 效果 |
|---|---|
Escape |
关闭作用域链中最近的、启用且带 :on-dismiss 的 Host。 |
M-g |
进入区域选择;选择器读取一个键。 |
C-g |
保持 Emacs 原生的键盘退出;它从不关闭 Host。 |
? |
为当前作用域打开只读的 *ETAF Help* 缓冲区。 |
TAB、S-TAB |
向前或向后移动一个焦点停靠点。 |
| 方向键 | 运行 etaf-direction:最近的 :on-direction 处理器、separator 或 slider 步进、区域邻接、Ebox 空间移动,最后滚动一步视口。 |
Home、End |
到达分组或作用域的第一个、最后一个焦点停靠点。 |
挂载缓冲区的键
Section titled “挂载缓冲区的键”这些绑定来自 ebox-buffer-mode-map,即挂载画布的按键表。
| 键 | 效果 |
|---|---|
n、p |
向下或向上滚动一行。 |
C-v、SPC、<next> |
向下滚动一页;scroll-up-command 的重映射同样生效。 |
M-v、S-SPC、<prior> |
向上滚动一页;scroll-down-command 的重映射同样生效。 |
| 滚轮事件 | 滚动画布;在 fringe 与 margin 里同样生效。 |
| 水平滚轮事件 | 横向滚动。 |
TAB、S-TAB |
移动一个焦点停靠点。 |
RET、<return> |
激活聚焦的控件。 |
方向键、C-n、C-p、C-b、C-f |
用 ebox-focus-direction 移动焦点;该方向没有停靠点时改为滚动。 |
Home、M-< |
到达分组或作用域的第一个焦点停靠点。 |
End、M-> |
到达最后一个焦点停靠点。 |
q |
退出窗口。 |
| 移动事件 | 通过 mouse-movement 派发悬停内容。 |
| 主按键按下与拖拽 | 移动 point;画布没有文本选区。 |
| 任何未绑定的打印键 | 被抑制,因此已挂载画布不会意外变成可编辑区。 |
区域选择器的键
Section titled “区域选择器的键”选择器是 M-g 背后的模态单键交互;在一个键结束它之前一直打开。
| 键 | 效果 |
|---|---|
| 某个区域的提示键 | 聚焦该区域的有效入口。 |
方向键;vim 方案下的 h、j、k、l |
朝该方向移动到相邻区域。 |
? |
重复提示并给出说明。 |
Escape |
取消,焦点保持不变。 |
C-g |
像任何原生退出一样中止。 |
| 其他任意键 | 保持打开,并显示一条点名该键的提示。 |
输入会话的键
Section titled “输入会话的键”会话编辑字段时,普通 Emacs 编辑命令作用于隐藏的值缓冲区;当会话 :keymap 绑定了 ebox-input-edit-commands 里的命令——newline、open-line、newline-and-indent、electric-newline-and-maybe-indent、completion-at-point、indent-for-tab-command 与 yank——这些命令编辑值。会话 :keymap 里的其他绑定在挂载缓冲区里运行,字段因此可以把 RET 绑成提交,而让 C-j 或 Shift-RET 插入换行。按下放置插入点,拖拽扩展选区;双击选中单词,三击选中整个值。
etaf-direction-scheme取arrows(默认)或vim;vim下这四个字母在导航状态下按方向键派发。用etaf-set-direction-scheme设置,它会在改方案之前报告 Host:keys与区域提示键的冲突。- 命令面板刻意不占键:用
M-x etaf-palette打开,运行带标签的命令或聚焦具名控件。 - 原生输入会话编辑时,按键穿过框架层落到会话自己的编辑命令。