Open smallnewer opened 7 years ago
windows的快捷键对程序员来说简直是无法忍受,尤其是用过mac以后。
发现autohotkey这个神器,可以对快捷键进行编程。非常好用。把自己用的代码共享出来。基本上已经还原了我日常使用中的90%的mac快捷键功能
; 禁用win功能 ; ~LWin Up:: return ; ~RWin Up:: return ; 基本编辑功能-复制粘贴剪切撤销全选保存查找新建打开 $!c:: IfWinActive ahk_class CabinetWClass Send, ^{c} else Send, ^{Insert} Return $!v:: IfWinActive ahk_class CabinetWClass Send, ^{v} else Send, +{Insert} Return ;$!c::Send, ^{Insert} ;Return ;$!v::Send, +{Insert} ;Return $!x::Send, ^{x} Return $!z::Send, ^{z} Return $!a::Send, ^{a} Return $!s::Send, ^{s} Return $!f::Send, ^{f} Return $!n::Send, ^{n} Return $!o::Send, ^{o} Return ; 浏览器快速导航到地址栏 $!l::Send, ^{l} Return ; 隐藏当前窗口 $!h::WinMinimize, A Return ; 有部分会用 $!j::Send, ^{j} Return ; 打印 $!p::Send, ^{p} Return ; 没啥用 $!y::Send, ^{y} Return ; 刷新 $!r::Send, ^{r} Return ; 新标签页 $!t::Send, ^{t} Return ; 关闭当前窗口 $!w::Send, ^{w} Return ; 退出程序 $!q::Send, !{F4} Return ; sublime里的多选 $!d::Send, ^{d} Return ; dock栏快速切窗口。 ; 1-exporler 2-chrome 3-sublime是写死的。 ; 这么写可以解决多窗口要多按次回车的问题。各位自己配置下即可 ; $!1::Send, #{1} ; Return $!1:: IfWinExist, ahk_class CabinetWClass WinActivate else Run %comspec% /c ""C:\Windows\explorer.exe"" Return ; $!2::Send, #{2} ; Return $!2:: IfWinExist, ahk_exe chrome.exe WinActivate else Run %comspec% /c ""C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"" Return $!3:: IfWinExist, ahk_exe sublime_text.exe WinActivate else Run %comspec% /c ""D:\Program Files\Sublime Text 3\sublime_text.exe"" Return $!4::Send, #{4} Return $!5::Send, #{5} Return ; 撤销上次关闭的窗口 $!+t::Send, ^+{t} Return ; 新建2 $!+n::Send, ^+{n} Return ; 打开2 $!+o::Send, ^+{o} Return ; sublime用 $!+p::Send, ^+{p} Return ; 回退撤销 $!+z::Send, ^{y} Return ; 注释 $!/::Send, ^{/} Return ; sublime选整行 $!+l::Send, ^+{l} Return ; 光标到行首行尾页尾,兼容shift选择 $!Left::Send, {Home} Return $!Right::Send, {End} Return $!+Left::Send, +{Home} Return $!+Right::Send, +{End} Return $!Up::Send, ^{Home} Return $!Down::Send, ^{End} Return $!+Up::Send, ^+{Home} Return $!+Down::Send, ^+{End} Return $#Left::Send, ^{Left} Return $#Right::Send, ^{Right} Return $+#Left::Send, ^+{Left} Return $+#Right::Send, ^+{Right} Return ; 回桌面 $F11::Send, #{d} Return ; 标签页的上一个下一个,兼容大部分 $!+[::Send, ^{PgUp} Return $!+]::Send, ^{PgDn} Return ; ctrl配合鼠标多选 $!LButton::Send, ^{LButton} Return ; 在同应用的多窗口间进行切换 $!`:: WinGetClass, NowFocusClass , A IfWinActive, ahk_class %NowFocusClass% WinActivateBottom, ahk_class %NowFocusClass% ; IfWinNotActive ; The original "last found" window is no longer active. IfWinActive, ahk_class %NowFocusClass% ; But a new one is. { WinActivate } else Return ; 在explorer里进行回车重命名 ;$Enter:: ;SetTitleMatchMode,RegEx #IfWinActive ahk_class CabinetWClass Return:: WinGet,l,ControlList,A ToolTip %ControlList% SendInput % InStr(l,"Edit1")?"{Enter}":"{F2}" Return $!Backspace:: Send, ^{d} Return #IfWinActive ; 禁用alt的菜单功能 ~LAlt Up:: return
保存为脚本,运行即可。
当然毕竟是模仿,还有很多细节没有mac下舒服。比如平时喜欢用alt+123切换程序窗口,但是win下若chrome有多个大窗口,就不能顺利切过去(会出一个缩略图列表让你选,干),chrome不会开多个,但是sublime通常会开很多个,一个窗口关联一个项目。现在就不能这么做了,只能使用switch projec功能,但是操作还是不那么自如。 多窗口问题已修复,但要求1~3对应绑定的explorer,chrome,sublime。如果你不希望这样,可以找到对应代码改为4和5的写法;或者自己配置,挺简单的
还有sublime的一些快捷键,不方便用autohotkey的,我直接就改了sublime里的映射
[ { "keys": ["ctrl+t"], "command": "show_overlay", "args": {"overlay": "goto", "show_files": true} }, { "keys": ["alt+]"], "command": "indent" }, { "keys": ["alt+["], "command": "unindent" }, ]
sublime也改了一些高亮、代码片段,回头再提交吧
windows的快捷键对程序员来说简直是无法忍受,尤其是用过mac以后。
发现autohotkey这个神器,可以对快捷键进行编程。非常好用。把自己用的代码共享出来。基本上已经还原了我日常使用中的90%的mac快捷键功能
保存为脚本,运行即可。
当然毕竟是模仿,还有很多细节没有mac下舒服。比如平时喜欢用alt+123切换程序窗口,
但是win下若chrome有多个大窗口,就不能顺利切过去(会出一个缩略图列表让你选,干),chrome不会开多个,但是sublime通常会开很多个,一个窗口关联一个项目。现在就不能这么做了,只能使用switch projec功能,但是操作还是不那么自如。多窗口问题已修复,但要求1~3对应绑定的explorer,chrome,sublime。如果你不希望这样,可以找到对应代码改为4和5的写法;或者自己配置,挺简单的还有sublime的一些快捷键,不方便用autohotkey的,我直接就改了sublime里的映射
sublime也改了一些高亮、代码片段,回头再提交吧