虽然Markdown 已经大大简化了排版的方法。例如,加三级标题,还是需要按3次### 才可以,词前后都要加。如果能够把这重复的工作,定义成快捷键就好了,例如按一下Alt+F3 就能在想要的标题前加三个###就好了。

这简直就是AHK的本职工作,废话不多说,直接上代码。

!F3::
send, ^x
send {Space}
send {#}{#}{#}
send {Space}
send ^v
send {Enter}
return

代码逻辑就是

  1. 选鼠标选中想要作为标题的部分
  2. 剪切进入剪切板,
  3. 再发送空格,然后三个#,最后空格
  4. 再把剪切版中的粘贴到第二个空格的后边
  5. 最后发送一个回车换行指令 (因为是搭配Typora使用,发送回车换行,自动就会使Markdown指令实现。就是常说的可见即可得。)

简单总结: 这就是AHK 通过模拟键盘输入来代替我们实际输入,同样的方法我们可以根据需要来定义更多的Markdown指令,更加简化编辑输入过程。

第二种方法,就是直接操作字符串或者利用AHK的 StrReplace 字符串函数来替换。 第二种适合简单文本编辑器,例如Notepad。但是对于Typora不好使。还是使用第一种方法,不过效率上应该是第二种更高。

!F3::
send, ^x
a :=’ ### ‘ b := Clipboard
c := a b
send %c%
return

  1. 还是先选中要设为标题的部分,然后剪切如剪切板
  2. 再把三个### a和我们剪切板中的标题 b 连接 成为 c
  3. 再利用替换函数把 b 替换成c
  4. 最后把c 字符串写回

StrReplace 函数:(函数有很多,没必要每个都记住,可以通过函数名,快速了解都有什么类型的函数,根据实际需要再搜索细看函数功能与实现方法。)

OutputVar := StrReplace(Haystack, SearchText [, ReplaceText, OutputVarCount, Limit := -1])

StrReplace 函数参数比较多,但也很好理解。Haystack 是原始字符串,SearchText 是被替换的内容,ReplaceText 是替换成的内容(如果省略,代表直接删除),OutputVarCount 用来存放替换的次数(如果省略代表不保存),Limit 指最多替换几次(-1 指全部替换,如果为 1,代表只替换找到的第一个)。

News Reporter
Dr. Lu

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据