autoHotkey —同个快捷键在不同网页中不同功能

autoHotkey — 同个快捷键在不同网页的功能不同

基本环境

为什么要做这个事情

  1. 很多网页自带的快捷键不合理.要嘛与平时软件的差异较大,要嘛就是3键触发.
  2. 例如百度搜索中没有快速重新输入搜索内容的按键,这对程序员来说是很不友好的.
    虽然浏览器提供了ctrl+k 可以在地址行默认使用搜索引擎搜索,但是我只想好好用百度,为啥还要我再记一个快捷键???
  3. 不用网页相同功能,但是快捷键却不同. 例如石墨文档和csdn编辑时的排版快捷键.
  4. csdn的mark因为是双排并看到格式,所以大部分都书写都还挺舒服. 不过插入代码和链接写起来就显得费事了.
  5. 另外在csdn的markdown模式下,要批量将无序列表和有序列表对换,用快捷键的方式更合理一点.

个人认为的快捷键设计原则:

  1. 键少功能多. 少量的人机接口方式,实现更多的功能.
  2. 连击最多2次单击,且由双手食指触发. 因为食指灵敏, 且我们习惯了鼠标的双击动作.
  3. 如果为双键结合,那么修饰键最好按整体功能进行分离,例如 shift 用来修饰编辑文本的. alt用来处理窗口操作的.
  4. 尽可能保留已经习惯的触发键,例如s为保存,f为查找. c为复制
  5. 不同软件的同概念性的快捷键应该保持一致. 例如 ctrl f 为一般的搜索功能,那么可以把百度激活搜索框的快捷键设置为ctrl f. 这样就不需要每次都用鼠标去单击搜索框,也不需要安装vim等插件. 因为是搜索引擎.没有必要保留原本的ctrl+F的功能.
  6. 可将同概念性的功能按软件的先后层次进行顺序切换,例如,在百度里面, 如果没有在输入框中,则按一次ctrl+f先激活输入框,再按一次搜索打开的标签或者直接跳转到系统的全局搜索 ,例如everything这类工具,再按一次则切换回浏览器的输入框,完全没有必要设置那么多个快捷键。
  7. 设计的时候先考虑新添加的功能是否与旧功能具有概念相似性。切记一上来就是一个新的快捷键。这是很多人一开始常犯的毛病。
    举个具体的例子,在pycharm中,单独使用了一个ctrl +d 作为重复一行或者选中内容的快捷键. 其实完全没必要这么做. 只要在原始的复制ctrl+c加一个是否选取内容的判断就可以,当没有选择内容的时候,默认就是重复复制一行. 在选中多行,或者一行中局部内容的时候,直接重复填充反而会很乱. 还要额外去记一个快捷键.

实现过程

如何实现指定网页,看我前面的一篇文章,这边就不展开说了.

首先csdn markdown 编辑模式下的快捷键为,可以看到其中有挺多3键触发的,操作起来十分不便.以及我十分不喜欢的ctrl键. 每次都得吐槽一下.
在这里插入图片描述
那么我只需要把自己的快捷键映射到这上面就可以了.

代码

#ifWinActive  ahk_exe msedge.exe ; 这边指定这个脚本在我的浏览器激活的时候才有用
Menu, Tray, Icon, % A_WinDir "\system32\netshell.dll", 86 ; Shows a world icon in the system tray
ModernBrowsers := "ApplicationFrameWindow,Chrome_WidgetWin_0,Chrome_WidgetWin_1,Maxthon3Cls_MainFrm,MozillaWindowClass,Slimjet_WidgetWin_1"
LegacyBrowsers := "IEFrame,OperaWindowClass"
; 以上的代码尽量不要修改


Add_石墨文档地址 := "shimo"
Add_文献文档地址 := "papers"
Add_百度搜索地址 := "baidu"
Address_CSDN写作 := "editor.csdn"
; 这边加入自己想要指定的页面地址的一部分名称, 
; 原理是判断当前地址中是否包含上述的文本

Return  ;上面的代码是在脚本启动的时候就自动运行的,这边设置了自动运行的结束点

;搜索
+f:: ;这边设置百度搜索功能的快捷键,因为我基本弃用了ctrl键,所以一律都是用的shift+的格式
  if 在这个网页中(Add_百度搜索地址) ; 这边将一个函数名设置为中文变量,因为会经常用到,这么看起来比较直观,可读性好一点
	; if 后面如果只有一行代码,正常情况下可以不加花括号,但是为了避免之后添加代码的时候忘了加括号,所以一律都提前加上
	{
   
		sendinput,^k ; 浏览器中  ctrl+k 是在地址栏中指定搜索引擎搜索内容
	}
Return
;任务框
+r::
  if 在这个网页中(Add_石墨文档地址)
	{
   
	sendinput,+^Y	
	}
    
	if 在这个网页中(Address_CSDN写作)
	{
   
		sendinput,+^k  ; 在csdn里面,基本上需要代办的功能,但是会经常插入代码,所以让这个快捷键映射的是插入代码
	}
Return
; 标题设置
+t::
  if 在这个网页中(Add_石墨文档地址)
	{
   
    sendinput,+^k
	}
	if 在这个网页中(Address_CSDN写作)
	{
   
		sendinput,  +^h ; 这个目前csdn里面用起来还不是很方便,用文本输入的形式就可以
	}
Return
;无序列表
+y::

	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值