Autohotkey一键跳转至行首、行末
Obsidian行间的跳转比较麻烦,于是写了个Autohotkey脚本,使用Alt+↑/↓跳转到行首行末
- 脚本如下,自取,Autohotkey版本是1.1.36.02
; Alt+上下键跳转行首行末
; 初始化变量
is_alt_pressed := false
is_second_press_end := false
is_second_press_home := false
; 按下Alt键时触发的热键
~Alt::
is_alt_pressed := true
return
; 松开Alt键时触发的热键
~Alt Up::
is_alt_pressed := false
is_second_press_end := false
is_second_press_home := false
return
; 监听 Alt+下键的按键组合
~!Down::
if (!is_second_press_end) {
; 触发End
Send {End}
Send {End}
; 标记为第二次按下
is_second_press_end := true
is_second_press_home := false
} else {
; 如果是第二次按下,触发右
Send {Right}
; 重置状态
is_second_press_end := false
is_second_press_home := true
}
return
; 监听 Alt+上键的按键组合
~!Up::
if (!is_second_press_home) {
; 触发Home
Send {Home}
Send {Home}
Send {Home}
; 标记为第二次按下
is_second_press_home := true
is_second_press_end := false
} else {
; 如果是第二次按下,触发左
Send {Left}
; 重置状态
is_second_press_home := false
is_second_press_end := true
}
return
- 相关脚本:Autohotkey一键选中当前段落
注:
- Autohotkey基础教程:
- Obsidian 中的 {Home} 和 {End} 的逻辑
- 和其他软件不太一样,第1、2、3次按下{Home}会分别跳转到当前行首、段落首(仅文字)、段落首(含列表的“- ”以及缩进);第1、2次按下{End}会跳转到当前行末、段落末。
- 如果已经在段落首(仅文字),则下一次按{Home}会跳转到段落首(含列表的“- ”以及缩进)。
- 因此脚本中会需要3次{Home}和2次{End}。
- 如果只需要每次跳转一行而不是一个段落,则可以改为1次{Home}和1次{End}。