需要一次点击" webdev热键工作流程解决方案

时间:2012-01-18 23:10:40

标签: windows-7 workflow web jedit

为所有找到最小麻烦的开发环境的webdev人/女士提出问题。

  • OS:Win7
  • 编辑:JEdit
  • 任务:在Web浏览器中预览工作

我想编写一个热键来将以下系列的热键打包成一个。我每天多次使用此序列来在浏览器中预览我的工作。

关键命令是:

  • (来自JEdit)ctrl + e ctrl + s [保存所有文件]
  • (win)alt + tab [切换到浏览器]
  • (浏览器)ctrl + r [重新加载页面]

多年来我没有使用过Dreamweaver或flash,但我记得打f12或ctrl +进入并浏览器预览当前工作文件。我正在寻找类似的工作流程,但我不能简单地链接到磁盘上保存的文件。我需要通过本地网络服务器查看该文件。通常情况下,我只需将浏览器打开到我需要的页面,然后在需要预览我所做的事情时刷新它。

另一个问题是alt + tab步骤不够明确。通常情况下,浏览器在打开的应用程序列表中没有正确排序,无需多个标签即可访问它。

感谢您提出任何建议,工作流程提示等。

2 个答案:

答案 0 :(得分:0)

  • 使用this answer创建刷新网页的命令行方法(适用于任何浏览器)。
  • 接下来,在JEdit中创建基线宏以激活您创建的脚本:
    • 在JEdit中,您可以使用 - > 录制宏录制宏。
    • 执行 ctrl + e + s
    • 使用宏停止录制宏 - > 停止录制
  • 使用新创建的宏缓冲区打开JEdit浏览器选项卡,该缓冲区现在在JEdit中打开,并在其末尾添加系统调用以运行Visual Basic脚本以刷新浏览器选项卡:

    Runtime.getRuntime().exec("c:/PATH/TO/VB_SCRIPT AND ARGS IF YOU NEED THEM");
    

  • 保存宏。
  • 使用 utilities - > 全局选项创建一个JEdit键盘快捷键,选择“快捷键”,然后搜索宏并创建一个新的键盘绑定。

请注意,Java beanshell exec命令是非阻塞的,因此如果您想在执行命令后执行任何其他操作,则可能需要插入一个类似于的睡眠:

Thread.currentThread().sleep(2000);

答案 1 :(得分:0)

只需按Alt + F5即可完成!

要完成此操作,请安装AutoHotKey并运行下面的脚本(复制到文本文件中并将扩展名更改为.ahk)。有一个便携版here。它使用AutoHotKey版本测试为1.0.48.05

此解决方案非常灵活,因为您可以更改密钥,编辑器,浏览器和其他所有内容。它适用于Firefox和IE,但您可以轻松自定义。

使用" WindowSpy"发现的varTextEditor和varBrowsers。捆绑到AutoHotKey中的实用程序。

;###############################################################################
; Save all unsaved documents, refresh all opened browsers and return to text editor
;###############################################################################
!F5::
    ;Configuration vars. Edit here the settings of this script
    ;               jEdit       Eclipse
    varTextEditor = SunAwtFrame,SWT_Window0
    ;varBrowsers = MozillaUIWindowClass,MozillaWindowClass,Chrome_WidgetWin_0,IEFrame,OpWindow,{1C03B488-D53B-4a81-97F8-754559640193}
    ;             Firefox3             Firefox4            Chrome             IEca    Opera    Safari
    varBrowsers = MozillaWindowClass,IEFrame
    ;End of configuration vars.

    WinGetClass, thisWindowClass, A ;Get the active window class

    if (InStr(varTextEditor, thisWindowClass, true, 1) > 0) { ;true = case sensitive
        varTextEditorClass = ahk_class %thisWindowClass%
        if (thisWindowClass = "SunAwtFrame") {
            OutputDebug, ...Saving everything
            ; SetKeyDelay, 100, 100, Play
            Send ^+s  ;Ctrl + Shift + S = Save all
        } else if (thisWindowClass = "SWT_Window0") {
            SendPlay ^s ;Ctrl + S = Save
        }
        Sleep, 500 ;Give some time to the data be recorded on hard disk
    } else {
        MsgBox, 0, Ops!, You must be in on these text editors: (%varTextEditor%) to get this script running, 5
        return
    }

    ;Refresh all opened (and maximized) browsers
    Loop, parse, varBrowsers, `,
    {
        varClasseBrowser = ahk_class %A_LoopField%
        if WinExist(varClasseBrowser) {
            WinGet, winState, MinMax, %varClasseBrowser% ;get window state. -1 = minimized
            if (winState != -1) {
                WinActivate, %varClasseBrowser%
                OutputDebug, ...Refresh browser %A_LoopField%
                Send, {F5}
            }
        }
    }
    ;Return to text editor
    WinActivate, %varTextEditorClass%
return