修改一下标题和内容
预告一下即将发布的一整套AHK编辑增强套件,包含编辑器快速切换,快速打开工作区文件,仿制文件管理器等一整套解决方案
快速切换编辑器组件介绍
平时我个人用着四五个编辑器
首先预览文件使用np3,速度快,简单看一下得了,但是如果是要编辑代码肯定得切vscode,然后如果要深度编辑文字那就得切换eme,有时候不在家里,没有vscode环境写ahk的时候就需要切scite
实际上编辑器的需求非常混乱
所以我做了一个可以无缝切换的工具,只需要自己填上自己编辑器的路径,根据自己的需求增删编辑器即可
提供快捷键和gui两种调用方式,实际使用非常丝滑流畅,体验不仅快速还省事,堪称工具届的冈本001,丝滑流畅,切换之间毫无间隔
加入了editor的组,快捷键和gui只会在组内使用
比如在把,编辑器内直接按下快捷键切换想要的编辑器,也可以按Ctrl+alt加左键打开gui来切换
堪称开发者的福音
看看效果
gui操作
按键按键
分享源码
/* 预处理指令和权限,重启用的按键
*/
#SingleInstance, Force
SendMode Input
SetWorkingDir, %A_ScriptDir%
SetBatchLines, -1
SetKeyDelay, -1
SetMouseDelay, -1
DetectHiddenWindows, Off
if !(A_IsAdmin || InStr(DllCall("GetCommandLine", "str"), ".exe"" /r"))
Run % "*RunAs " (s:=A_IsCompiled ? "" : A_AhkPath " /r ") """" A_ScriptFullPath """" (s ? "" : " /r")
; hlog(1,1,1)
;eme得手动设置一下快捷键,vscode的快捷键不能改过
;************************************* editor path ***********************
global np3:="C:\SoftDir\totalcmd10.5_ez\Tools\notepad\Notepad.exe"
global scite:="C:\AHK\SciTE\SciTE.exe"
global eme:="C:\SoftDir\DevEditor\EmEditor\EmEditor.exe"
global code:="C:\SoftDir\DevEditor\VSCode\Code.exe"
;************************************* editor group ***********************
GroupAdd, editorall,ahk_exe code.exe
GroupAdd, editorall,ahk_exe Notepad.exe
GroupAdd, editorall,ahk_exe SciTE.exe
GroupAdd, editorall,ahk_exe EmEditor.exe
;************************************* hotkey ***********************
Hotkey, IfWinActive, ahk_group editorall
Hotkey, ^!n,np3
Hotkey, ^!e,eme
Hotkey, ^!c,code
Hotkey, ^!s,scite
Hotkey, ^!LButton,gui
Hotkey, IfWinActive
Return
gui:
gui,Destroy
gui, +AlwaysOnTop -Caption +E0x08000000
Gui, add, Button,gcode,vscode
Gui, add, Button,geme x+5,eme
Gui, add, Button,gnp3 x+5,np3
Gui, add, Button,gscite x+5,scite
Gui, add, Button,gGuiClose x+5,Close
MouseGetPos,xpos,ypos
gui,show,x %xpos% y %ypos%,QuickChangeEditor
Return
GuiClose:
GuiEscape:
gui,Destroy
Return
code:
changeEditor(code)
Return
eme:
changeEditor(eme)
Return
np3:
changeEditor(np3)
Return
scite:
changeEditor(scite)
Return
F3::changeEditor(scite)
changeEditor(editor){
WinGet,ed1, ProcessName,A
switch ed1 {
case "code.exe": code()
case "Notepad.exe": np3()
case "SciTE.exe": scite()
case "EmEditor.exe": eme()
}
run,%editor% %Clipboard%
}
code(){
SendInput,^s{CtrlUp}!+c
sleep 200
SendInput, {ShiftUp}{AltUp}^w{CtrlUp}
Return 1
}
np3(){
SendInput, ^s{CtrlUp}^+{F9}
sleep 200
SendInput, {CtrlUp}{ShiftUp}
WinClose,A
Return 1
}
scite(){
SendInput, ^s!f
sleep 200
SendInput, h{CtrlUp}{ShiftUp}{AltUp}
sleep 100
SendInput, ^w{CtrlUp}
Return 1
}
eme(){
SendInput,^s{CtrlUp}!+c
sleep 200
SendInput, {ShiftUp}{AltUp}^w{CtrlUp}
Return 1
}
F11::
if (winc_presses > 0) {
winc_presses ++
Return
} winc_presses = 1
SetTimer KeyWinC1, -400
Return
KeyWinC1:
if (winc_presses = 1) {
MsgBox,,重启,重启,0.5
Reload
} else if (winc_presses = 2) {
MsgBox,,关闭,关闭,0.5
ExitApp,1
} winc_presses = 0
Return
好像有点bug,在gui操作下,无论点击哪个按钮,WinGet获取的程序都是Autohotkey.exe,无法实现切换
我临时的解决办法是在changeEditor()中,WinGet前加一个gui,Destroy