分享一波目前写的最强的autohotkey 插件
支持各种软件快速切换,补全括号,代码等!!!!!!!!
;这种全局定义要写在所有代码的前面才能让所有代码起作用.
SetCapsLockState , AlwaysOff
SetNumlockState, AlwaysOn
GroupAdd, DisableBracketAuto , PyCharm ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , Xshell ;注意这种语句要放最前面才起作用
SetTitleMatchMode,
SetTitleMatchMode, slow
^b:: run http://www.baidu.com/ return
#b:: run https://www.google.com/
return ;需要写一个按照像素移动鼠标的功能,做cv用,当然photoshop也可以使用. CapsLock & Up::
MouseMove, , -, , R
return CapsLock & Down::
MouseMove, , , , R
return CapsLock & Left::
MouseMove, -, , , R
return CapsLock & Right::
MouseMove, , , , R
return CapsLock & ::
send ,{PgUp}
return CapsLock & ::
send ,{PgDn}
return CapsLock & u::
send ,{backspace}
return CapsLock & o::
send ,{del}
return ;如何选中光标当前字.就是模拟鼠标敲2下的操作. /* LCtrl & LShift::
Send #{Space}
return
*/ /*
linux下调试还是用gdb 还是用autohotkey来控制吧,没找到linux设置输入快捷键的方法 */ /*
$+9:: ;因为这个shift跟输入法的冲突至今还没解决,只能进入搜狗输入法把切换中英文改成ctrl即可.
SetKeyDelay, 30 ;只要跟剪贴板有关就必须设置这个参数
t=%clipboard%
clipboard=
x=%clipboard% y=%clipboard%
send {(}
send {)}
send {left} clipboard=%t%
return */ /*
^t::
ime_status:=DllCall("GetKeyboardLayout","int",0,UInt) ;返回值的低位字包含了输入语言的语言标识符,高位字包含了键盘物理布局的句柄。
msgbox, %ime_status% ;获取67699721这个输入法代码
return
*/ /*
^t::
ime_status:=DllCall("GetKeyboardLayout","int",0,UInt)
msgbox, %ime_status% ;获取67699721这个输入法代码和134481924
return
*/ /*注意dll的名字可能跟windowsapi里面名字不一样,0表示空指针,并且注释一定要把*斜杠单独写一样才行,挺bug
*/ /*
调用windows Api .第一个参数是函数名,后面是type和参数值. ^t::
DllCall("CreateDirectory", "Str", "dsaf",Ptr, 0)
return */ ;好想废了insert这个建的功能,但是没找到api,但是因为有些软件insert跟其他软件insert相反,所以还是保留着吧,
;如果找到了底层api能锁定上就好了 switchime(ime )
{
if (ime = ){
DllCall("SendMessage", UInt, WinActive("A"), UInt, , UInt, , UInt, DllCall("LoadKeyboardLayout", Str,"", UInt, ))
}else if (ime = )
{
DllCall("SendMessage", UInt, WinActive("A"), UInt, , UInt, , UInt, DllCall("LoadKeyboardLayout", Str,, UInt, ))
}else if (ime = "A")
{
;ime_status:=DllCall("GetKeyboardLayout","int",,UInt)
Send, #{Space}
}} #f::
If WinActive("Everything"){
WinMinimize,A
return
}
Run "C:\Program Files\Everything\Everything.exe" return #c::
SetKeyDelay,
If WinActive("管理员: C:\windows\SYSTEM32\cmd.exe") {
switchime()
WinMinimize,A return
} If WinExist("管理员: C:\windows\SYSTEM32\cmd.exe")
{ WinActivate
switchime() ;写在激活的后面才行.
return
} else
{ run, cmd
switchime()
a=%clipboard%
sleep,
MouseClick, left, A_ScreenWidth/, A_ScreenHeight/ ;居中点一下 send,{enter} ;这个点一下操作会清空clipborad,重新赋值一下即可.简单
clipboard=%a%
return
}
return #a::
SetKeyDelay,
If WinActive("") {
WinMinimize,A
return
}
If WinExist(""){
WinActivate return
}
else{
run "C:\Users\zhangbo340\AppData\Roaming\360se6\Application\360se.exe"
;为了防止alt点开菜单栏
return
} return #q::
SetKeyDelay,
If WinActive("福昕阅读器") {
WinMinimize,A
return
}
If WinExist("福昕阅读器"){
WinActivate return
}
else{
run "C:\Program Files (x86)\Foxit Software\Foxit Reader\FoxitReader.exe"
;为了防止alt点开菜单栏
return
} return #x::
SetKeyDelay,
If WinActive("笔记.txt") {
WinMinimize,A return
}
If WinExist("笔记.txt"){ WinActivate return
}
else{
run D:\zhangbo340\Desktop\笔记.txt
;为了防止alt点开菜单栏
WinActivate return
} return ^u::
SetKeyDelay, send, ^c
x = %clipboard%
StringUpper, x, x
clipboard = %x%
send, ^v return #z::
SetKeyDelay,
If WinActive("ahk_class Xshell6::MainFrame_0"){
WinMinimize,A
return
}
If WinExist("ahk_class Xshell6::MainFrame_0"){ WinActivate
switchime() }
else{ Run "C:\Program Files (x86)\NetSarang\Xshell 6\Xshell.exe"
switchime() } return ; 切换至sougou 调用这个函数即可switchime()
; 切换至英文 调用这个函数即可 switchime() /* ;gc克隆代码 */ :*:;gc::
SetKeyDelay,
x=%clipboard%
d=%x%
clipboard=git clone %d%
Send, +{Ins}
sleep,0.01
clipboard=%x%
Send {enter}
return /* 下面的^g是为了git命令写的,为了能回滚到之前任意一次提交,所以加入了tag标签,
如果tag里面标签内容重复,好像idea就不能保存状态,所以用一个当前时间作参数穿进去. 懒得自己写push了,也写上. */ ^g::
switchime()
x=%clipboard%
FormatTime, now_date, %A_Now%, yyyy-MM-dd ;格式化当前时间
d=git add . && git commit -am "" &&git tag %A_Now%&&git push
SetKeyDelay,
clipboard = %d% Send +{insert}
SetKeyDelay, 0.1
Send {LEFT } return !g::
run D:\zhangbo340\Desktop\个人信息.txt return ;通过if else已经完美的利用alt+x 启动笔记和最小化笔记,唤起笔记了. ;下面我要实现的功能是想在一段话左右加括号,只需要选中这段话之后按下shift+9就行.等号右边的变量需要加双%,其实还是有bug存在
;当剪贴板内容和选择内容相同时候有bug,所以如果你要复制一段话到一个新地方并且加上括号.就先复制话,然后输入括号再粘贴即可.顺序反了就出不来.目前只有这个一个bug CapsLock & n::SendInput {_} CapsLock & ,::SendInput {+}
CapsLock & .::SendInput {=} ;用;p来替换书写经常不好使,因为输入多个字符替换可能会bug
; caplock表示右,ctrl+caplock切换大小写
;CapsLock::SendInput {Right} ;这样改就避免冲突了
CapsLock & l::Send {Right}
CapsLock & i::SendInput {up}
CapsLock & j::SendInput {left}
CapsLock & k::SendInput {down}
CapsLock & y::send print(type()){left } CapsLock & h::Send {home}
CapsLock::Send {right}
CapsLock & `;::Send {end} ;加入`表示autohotkey里面的转义字符 CapsLock & m::Send import{space} ;send最稳的写法是每次send一个字符 !b::
run D:\zhangbo340\Desktop\gapa.exe
return CapsLock & r::send return{space} CapsLock & ::send ^{Backspace}
CapsLock & ::send ^{del} CapsLock & e::send exit(){enter} CapsLock & c::send continue SetWinDelay,
#ClipboardTimeout
;这个版本已经基本修复了输入括号等shift与切换中英文输入法之间的冲突
#s::Suspend ; 给一个热键指定挂起的开关功能。 CapsLock & t::send
CapsLock & f::send
CapsLock & b:: send,break return !p::
IfWinExist, 无标题 - 画图 ;注意这里面的标题名字就是打开程序里面写的标题,注意中间带空格.;这样写就控制了程序开关. { WinClose
return
}
else
{
run mspaint
return
} !j::run calc :*:;m::@.com
^NumpadAdd::SoundSet , +, WAVE
^NumpadSub::SoundSet , -, WAVE F3::
SetKeyDelay,
x=%clipboard%
d=.append()
clipboard=%d%
Send ^v
sleep,0.01
Send, {Left}
clipboard=%x%
return F4:: SetKeyDelay,
x=%clipboard%
SetKeyDelay,
d=''''''
clipboard=%d%
Send ^v
sleep,0.1 ; 貌似可以防止剪贴板粘贴错误 clipboard=%x%
send {left } send {enter}
send {enter}
send {up} return $^v::
tmp1=%clipboard% asdf:==RegExMatch(tmp1, "————————(.*)\r\n版权声明(.*)\r\n原文链接:(.*)") If %asdf%
{ send, ^v
return
}
else
{ tmp1 := RegExReplace(tmp1, "————————(.*)\r\n版权声明(.*)\r\n原文链接:(.*)", "")
clipboard=%tmp1%
send,^v
return } ;使用方法是输入,xun然后空格 :*:lsit::list
:*:braek::break
:*:berak::break
:*:,rr::return{space}
:*:dfe::def
:*:retrun::return
:*:retunr::return
:*:calss::class :*:slef::self
:*:slfe::self
:*:apend::append
:*:appedn::append
:*:contiune::continue
:*:contnue::continue ;下面为了java扩充的:
CapsLock & s::
SetKeyDelay,
x=%clipboard%
d=System.out.println();
clipboard=%d%
Send ^v
sleep,0.01
Send, {Left }
clipboard=%x%
return :*:'::
SetKeyDelay,
x=%clipboard%
d=''
clipboard=%d%
Send ^v
Send {Left}
sleep,0.01 clipboard=%x%
return :*:;d:: SetKeyDelay,
sleep ,
x=%clipboard%
sleep ,
FormatTime, d, LongDate,yyyy-MM-dd,H点mm
sleep ,
clipboard = %d%
sleep ,
Send ^v
sleep,
clipboard=%x%
return ;下面添加sql快捷键 :*:;sql::
switchime()
x=%clipboard%
d=select * from ();
SetKeyDelay,
clipboard = %d%
SetKeyDelay,
Send ^v Send {LEFT }
Send {ENTER }
Send {UP}
clipboard=%x%
return /*自动复制搜索
*/ CapsLock & p::send print(){left} #IfWinActive Xshell ;这句话表示在shell里面这里面的语句才有效,但是为什么其他快捷键都失效,当shell时候?
;起始很简单,只需要把这个If挂载的代码写在最后即可.这样在判断之前前面的快捷键已经都生效了. ;因为xshell里面粘贴是shift+insert所以也给他改成ctrl+v :*:;cm::cmake .&&make{enter}
:*:;ls::lsof -i: ^b::^b
return
;vim改建 用于快速保存或者关闭vim文件.
^q::
send,{Esc}
switchime( )
send,:q+
send,{enter}
send,{enter}
return ^s::
send,{Esc}
switchime( )
send,:x
send,{enter}
send,{enter}
return ;超级find命令
:*:;f::find / -name {space} return #IfwinNotActive , ahk_group DisableBracketAuto ;Edit_GetSel Gets the starting and ending character positions of the current selection in an edit or rich edit control. You can use this macro or send the EM_GETSEL message explicitly. ;https://docs.microsoft.com/zh-cn/windows/win32/controls/em-getsel ;ime_status:=DllCall("SetClipboardData","int",CF_UNICODETEXT,UInt) ^y:: m :=
n := ;n1:=DllCall("EM_GETSEL")
n1:=DllCall("EM_GETSEL",Ptr,,Ptr,)
;n1:=DllCall("EM_GETSEL")
oo:=&n
mm:=&m
tt:=*m
tt2:=*oo
msgbox, %n1%,%n1%,,%n%,%m%,%oo%,%mm%,%tt%,%tt2% return ^::
m=
MyVar=ooo
MyVar2:=DllCall("CharUpper", Ptr, &MyVar)
msgbox, %MyVar% return ;注意要删除pycharm 里面 copy 的 ctrl+insert这个快捷键.
;然后开启pycharm自带的补全. $+:: ;因为这个shift跟输入法的冲突至今还没解决,只能进入搜狗输入法把切换中英文改成ctrl即可.
SetKeyDelay, ;只要跟剪贴板有关就必须设置这个参数
SaveOldData=%clipboard% clipboard=
sleep,
send , ^{insert}
sleep, x=%clipboard% y=%clipboard%
send +
send +
sleep,
send {left}
sleep,
send , ^v
clipboard=%SaveOldData% return $+[:: ;因为这个shift跟输入法的冲突至今还没解决,只能进入搜狗输入法把切换中英文改成ctrl即可.
SetKeyDelay, ;只要跟剪贴板有关就必须设置这个参数
SaveOldData=%clipboard%
clipboard= ;必须强制手动清空剪贴板
send , ^{insert} x=%clipboard% y=%clipboard%
send {{}
send {}}
send {left}
sleep,
send , ^v
clipboard=%SaveOldData% return $[:: ;因为这个shift跟输入法的冲突至今还没解决,只能进入搜狗输入法把切换中英文改成ctrl即可.
SetKeyDelay, ;只要跟剪贴板有关就必须设置这个参数
SaveOldData=%clipboard%
clipboard= ;必须强制手动清空剪贴板
send , ^{insert} x=%clipboard% y=%clipboard%
send {[}
send {]}
send {left}
sleep,
send , ^v
clipboard=%SaveOldData% return $':: ;因为这个shift跟输入法的冲突至今还没解决,只能进入搜狗输入法把切换中英文改成ctrl即可.
SetKeyDelay, ;只要跟剪贴板有关就必须设置这个参数
SaveOldData=%clipboard%
clipboard= ;必须强制手动清空剪贴板
send , ^{insert} x=%clipboard% y=%clipboard%
send {'}
send {'}
send {left}
sleep,
send , ^v
clipboard=%SaveOldData% return $":: ;因为这个shift跟输入法的冲突至今还没解决,只能进入搜狗输入法把切换中英文改成ctrl即可.
SetKeyDelay, ;只要跟剪贴板有关就必须设置这个参数
SaveOldData=%clipboard%
clipboard= ;必须强制手动清空剪贴板
send , ^{insert} x=%clipboard% y=%clipboard%
send {"}
send {"}
send {left}
sleep,
send , ^v
clipboard=%SaveOldData% return #IfWinActive Xshell ^v::send,+{insert}
return
^b::
run http://www.baidu.com/
return ;ime_status:=DllCall("GetClipboardData","int",CF_UNICODETEXT,UInt) $+:: ;因为这个shift跟输入法的冲突至今还没解决,只能进入搜狗输入法把切换中英文改成ctrl即可.
SetKeyDelay, ;只要跟剪贴板有关就必须设置这个参数 clipboard= ;必须强制手动清空剪贴板 x=%clipboard% y=%clipboard%
send +
send +
send {left}
sleep, return $+[:: ;因为这个shift跟输入法的冲突至今还没解决,只能进入搜狗输入法把切换中英文改成ctrl即可.
SetKeyDelay, ;只要跟剪贴板有关就必须设置这个参数
SaveOldData=%clipboard%
clipboard= ;必须强制手动清空剪贴板 x=%clipboard% y=%clipboard%
send {{}
send {}}
send {left}
sleep, clipboard=%SaveOldData% return $[:: ;因为这个shift跟输入法的冲突至今还没解决,只能进入搜狗输入法把切换中英文改成ctrl即可.
SetKeyDelay, ;只要跟剪贴板有关就必须设置这个参数
SaveOldData=%clipboard%
clipboard= ;必须强制手动清空剪贴板 x=%clipboard% y=%clipboard%
send {[}
send {]}
send {left}
sleep,
clipboard=%SaveOldData% return $':: ;因为这个shift跟输入法的冲突至今还没解决,只能进入搜狗输入法把切换中英文改成ctrl即可.
SetKeyDelay, ;只要跟剪贴板有关就必须设置这个参数
SaveOldData=%clipboard%
clipboard= ;必须强制手动清空剪贴板 x=%clipboard% y=%clipboard%
send {'}
send {'}
send {left}
sleep,
clipboard=%SaveOldData% return $":: ;因为这个shift跟输入法的冲突至今还没解决,只能进入搜狗输入法把切换中英文改成ctrl即可.
SetKeyDelay, ;只要跟剪贴板有关就必须设置这个参数
SaveOldData=%clipboard%
clipboard= ;必须强制手动清空剪贴板 x=%clipboard% y=%clipboard%
send {"}
send {"}
send {left}
sleep,
clipboard=%SaveOldData% return #IfWinActive pycharm ^F1::
SetKeyDelay,
x=%clipboard%
d=for i in range(len()):
clipboard=%d%
Send ^v
sleep,0.01
Send, {Left }
clipboard=%x%
return F1::
SetKeyDelay,
x=%clipboard%
d=for i in :
clipboard = %d% Send ^v
Send {LEFT }
Send {space} clipboard=%x%
return #IfWinNotActive pycharm ^F1::
SetKeyDelay,
x=%clipboard%
d=for i in range(len()):
clipboard=%d%
Send ^v
sleep,0.01
Send, {Left }
clipboard=%x%
return F1::
SetKeyDelay,
x=%clipboard%
d=for i in :
clipboard = %d% Send ^v
Send {LEFT } clipboard=%x%
return
分享一波目前写的最强的autohotkey 插件的更多相关文章
- 写了一篇关于 FastAdmin 插件路由的分析文章
写了一篇关于 FastAdmin 插件路由的分析文章 插件路由演示 ThinkPHP 的路由就像是整个应用的调度室,让你的应用 url 更友好,而且让应用更安全,不会让真实的地址暴露出去. 了解过 L ...
- 写了一个迷你toast提示插件,支持自定义提示文字和显示时间
写了一个迷你toast提示插件,支持自定义提示文字和显示时间,不想用其他第三方的ui插件,又想要toast等小效果来完善交互的同学可以试试, 代码中还贡献了一段css能力检测js工具函数,做项目的时候 ...
- 从0开始写一个简单的vite hmr 插件
从0开始写一个简单的vite hmr 插件 0. 写在前面 在构建前端项目的时候,除开基本的资源格式(图片,json)以外,还常常会需要导入一些其他格式的资源,这些资源如果没有第三方vite插件的支持 ...
- 原来你一直写错了?!实力分享一波 CSS 使用的书写规范顺序与偏门又实用的样式...
我们在埋头写代码的时候,还要学会收集整理一些常用的代码小技巧,以便在工作时候,可以及时调取,提高工作效率. 今天,我把之前收集整理的一些CSS代码小技巧分享出来,供你参考学习,希望对你有帮助. 一.C ...
- 分享一个的c++写的,模仿awk的框架类CAwkDoc
这是我好多年前,模仿awk写的. awk大家都比较熟悉,使用awk处理文件,读取文件,分割字段这些工作awk自己帮你实现了. 程序员只要编写业务逻辑代码,并且awk还提供了很多常用的字符串操作函数,可 ...
- 秋招已过,各大厂的面试题分享一波 附C++实现
数据结构和算法是面试的一座大山,尤其去面试大厂更是必不可少!简单说明一下为啥喜欢考数据结构和算法,首先,算法有用也没用,如果是中小型企业的简单业务逻辑,可能用不到啥算法,但大厂一定会用到,都知道数据库 ...
- [原创]分享本人自己PY写的BOOST编译程序(源码)
本程序WINDOWS专用,只做抛砖引玉,希望诸位按照各自需求自行修改,主要目的是为了让诸位编译时可以省一些组合指令的时间,只需要修改几个参数即可自动编译. 支持64位编译模式. 改进版本:http:/ ...
- 干货分享:想要写好Proposal,这四个问题必须解决
当大家确定了毕业论文选题之后,下一步就是着手写开题报告,也就是proposal.开题报告或者说是研究计划要回答四个问题:为什么这个问题重要,为什么这个问题很难解决,为什么现在要考虑解决这个问题,为什么 ...
- 干货分享|留学Essay怎么写?
留学生活其实就是分割成一个个deadline,留学就是赶完一个又一个deadline.朋友同学的革命情感源自赶一个个deadline时候的不离不弃,相知相守,无数个夜里大家群里打卡,你今天Essay写 ...
随机推荐
- 最新 房天下java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.房天下等10家互联网公司的校招Offer,因为某些自身原因最终选择了房天下.6.7月主要是做系统复习.项目复盘.LeetCo ...
- 一个简单的一个sql表遍历
简单的一个sql表遍历 一般我们写储存过程或者其他sql语句的时候都会用到循环遍历数据,最常用的两种就是 1.游标 2.临时表+while 下面贴出示例代码 DECLARE @MinReLogID I ...
- 串口调试助手--Qt
串口调试助手----------该程序使用Qt框架,C ++语言编译而成 项目文件介绍: main.cpp 该文件为该程序的入口程序 mainwindow.h 该文件为该程序的主要声明部分 mainw ...
- Bean的三种实例化方式
在面向对象程序中,如要使用某个对象,就需要先实例化这个对象.同样的,在Spring中,要想使用容器中的Bean,也需要实例化Bean.实例化Bean有三种方式,分别是:构造器实例化.静态工厂实例化.实 ...
- 前端通过js获取手机型号
###前段通过js获取手机型号 需求: 用户登录后记录当前的手机型号并记录 插件: mobile-detect.js插件地址 mobile-device-js插件地址 使用步骤: 获取UA信息-> ...
- Python习题004
作业一:三迁举办选“帅气男孩”,评委打分可以输入打分,要求分数必须大于5,小于10: 方法一 i = 1 while i < 6: score = input("请%d评委打分:&qu ...
- 103 保序回归 isotonic regression
103 保序回归 isotonic regression 2016-03-30 11:25:27 bea_tree 阅读数 6895 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权 ...
- 去除空格函数trim
实际查询中,经常存在多个tables,需要统一查询比如segments总大小或者索引或者主键等,我们得到大量的tables表名称,但是SQL查询,每次需要手工添加双引号,去除空格很麻烦. 可以通过文本 ...
- 一步一步写News App(一)
一. 新建一个安卓工程,安卓版本全部选2.3.3 二.第一步,添加一个tabhost控件 在MainActivity中声明TabHost tabHost; 然后新建一个private void ini ...
- freemarker循环、下标及判断
一.freemarker中list循环使用非常频繁,下面介绍lfreemarker中list简单的用法 1.在freemarker中遍历list数组使用list指令:<#list sequenc ...