如何在不同平台下打开新窗口运行程序?

如果可以让自己的工作效率提升一点点,那么即便花费几天来开发一些工具也是值得的。在不同操作系统下自动打开终端窗口来运行指定的命令就是这样一件能提高工作效率的事情。

就像 Visual Studio 调试命令行程序的人都对打开一个新窗口运行命令行程序的模式情有独钟。EditPlus 也提供新窗口运行程序(可惜只限windows)。

而如果你在使用 Sublime/Atom/GEdit/GVim 之类的工具,你就会发现调试程序的时候程序基本上是在下面的面板中运行的,所有输出也是输出到下面的面板中。这时如果程序长时间运行是非常不方便的,又或者程序有交互(需要输入数据),基于GUI面板的运行方式也会显得十分笨重,而Vim/GVim之流更过分,一执行程序整个GUI就定住了,没法一边看代码一边查看一些长时间运行的程序状态,虽然Windows下的GVim可以用!start来解决(见Gim !start),但十分遗憾,Linux桌面或者Mac下面的Vim都没有这个 !start功能。

同时,哪天你切换到Mac/Ubuntu下开发了,你会发现这个问题十分恶心,这时候你往往需要写一些脚本来做这件事情。而在不同的平台下正确的escape并传递参数,正确的生成中间脚本(bash,applescript,batch)并且通过管道传递又是一项比较浪费时间的事情。

所以这两天写了: https://github.com/skywind3000/terminal 这个脚本来做这些,满足了我如下需求:

  • 在 Windows 下打开 cmd窗口执行若干命令
  • 在 Linux 下打开 xterm/gnome-terminal 来执行若干命令
  • 在 Mac OS X 下面打开 Terminal/iTerm 窗口来执行若干命令
  • 不同的操作系统下提供统一的调用接口
  • 可以方便设置:工作目录、窗口标题、窗口配置(Terminal/gnome-terminal/iterm)
  • 新窗口内执行完程序以后可以会等待按任意键才关闭窗口
  • Windows 打开 Cygwin 的 Mintty窗口并执行 Cygwin命令(Windows下编辑,Cygwin下运行)
  • Cygwin 下直接打开 Windows的 CMD窗口执行 Win32程序(Cygwin下编辑,Windows下运行)
  • Cygwin 下直接打开 Mintty窗口并运行cygwin命令(Cygwin下编辑,cygwin下运行)

如此,不管你运行在哪个操作系统下,使用何种编辑器,都可以提供完全一致的调试体验。一边编辑代码的同时,一边查看另一个窗口的程序实时输出。

Loading

About skywind

Putty 本无树,MinGW 亦非台
This entry was posted in 随笔 and tagged . Bookmark the permalink.

4 Responses to 如何在不同平台下打开新窗口运行程序?

  1. 老猪 says:

    还是用真正的 ide 吧。

  2. skywind says:

    @老猪
    真正的IDE我也用,写正式项目,但是大部分测试,小的独立模块,还要用IDE弄一大堆solution 和 project文件,还有中间数据库文件也未免太傻了,工作效率更低。比如我写基础模块,都是一个个小模块,全部用编辑器开发,调试正确了,组成大的项目,然后IDE里面再用来开发具体东西,何况我工作平台太多,windows, freebsd, linux, os x。没有统一的ide给你用,却有很多统一的编辑器给你选择。

  3. skywind says:

    @老猪
    比如编辑器里面我可以在windows下一键编译cygwin的程序,再一键打开cygwin窗口自动执行之,这样方便windows下调试相关unix代码,你说ide下咋做呢?

  4. 老猪 says:

    试试 Jetbrains 的 CLion ,内置 terminal 哦

Leave a Reply

Your email address will not be published. Required fields are marked *