配置豪华的 Windows 开发环境
作者: jagttt
列举一些好用,免费的的开发相关工具
最近愈发发现程序员之间不知道聊什么的话,讲讲些常用的开发工具绝对是个好话题。所以这里我想整理一下我经常用的 Windows 下开发相关的免费工具。如果你中午吃饭的时候讲到没话说,不妨试试“那个啥 xxx 你用过没,还挺好用的”这样来防冷场吧。
ConEmu + clink
在 Windows 下做开发和 cmd.exe 打交道是是少不了的。如果你经常辗转于 Linux 和 Windows,那么 cmd 绝对会烂得让人想撞墙。然而好消息是这个悲剧的局面随着 ConEmu 的出现而彻底结束。装上这个后你就有了一个超级豪华加强版的 cmd.exe:
- 支持 ClearType 字体,真彩色主题的炫酷界面
- 窗口长度宽度可以随意拖拉,可以近乎无限的回滚历史
- 鼠标拖拉选择文字不再是拉出一个方框,而是像正常人想象的那样拉出几行来
- 好使的 Tab,好使的快捷键,好使的各种设置
ConEmu 自带了 clink,一个尝试再 cmd 上加入 bash 常见功能并且真的做到了的项目。这样除开上面的你又获得了这些功能:
- Tab 键补全当前目录下的文件和 Path 上的可执行程序
- Ctrl-V 粘贴到命令行,不用右键点窗口标题栏再点粘贴。
- Ctrl-R 补全历史命令
- 自动存数历史命令,下次开机也能找回之前的命令行历史
如果你经常用 Putty 的话,基本上 ConEmu 给人的感觉就是像用 Putty 来连上本地的 cmd。经过稍许配置,你就可以获得一个如下图一样的命令行:
如果你平日工作里常与 cmd 打交道,那不妨对自己好一点迅速装上这个试试。
gow
还是命令行相关的,如果你常怀念 Linux 下的 ls, cat, tail 这些东西又不想装上一个几个 G 的 cygwin 的话,gow 正是你在苦苦寻找的东西。它打包了一些常用的,并且在 Windows 下可以正常工作的 Linux 命令行工具。
值得一提的 gow 附带了一个单文件命令行版本的 vim,非常适合用来写 commit message 或者做些简单的编辑操作。
SourceTree
如果你工作用到 git 或者 hg 做版本控制的话,SourceTree 这个图形界面的 git/hg 客户端可以提高相关操作的效率。如果你是刚开始使用 git/hg,这个可以帮助你迅速上手;如果你对各种命令已经能用的随心所欲也可以试试用这个。
我现在经常用到 git,工作流程是大部分写操作都是在命令行里完成,而各种查看的操作,比如看分支情况,看 diff 看 log 都是直接切到 SourceTree 里面看,省了很多敲命令的时间。SourceTree 没有设计成隐藏底层的命令行调用,你在它里面的操作都是以命令行的形式完成的。同时你在命令行里操作后,切到 SourceTree 按一下 F5 刷新后就看的到。举个例子,我在命令行里运行 git merge
,提示有冲突。切到 SourceTree 可以看到冲突的文件,点开菜单可以选择用图形工具来 resolve,然后再切到命令行里做 git merge --continue
就行了,感觉非常顺畅。
额外的,图形化的界面使得很多文件路径相关的操作变得非常简单。你可以拖动文件来完成 stage/unstage/discard 文件的操作,而不用手动敲入一长串文件名。SourceTree 对于 git 还支持鼠标点击来 stage 某一小段代码,这个比起你命令行下看半天绝对要方便很多。
Windows 下支持 git/hg 的图形化客户端不多,我用下来感觉这个各方面目前应该算是比较好的。
TDM-GCC
如果你是做 C/C++ 相关的开发,或者有在 Windows 上编译 C/C++ 项目的经验的话,你应该听说过 MinGW。它的大概意思就是在 Windows 上提供一套于 Win32 兼容的 POSIX 环境,用来跑 GCC 编译器。TDM-GCC 就是一套基于 MinGW 跑在 Windows 32/64 上较新的 GCC,可以用来将 C/C++ 代码编译成原生的 Windows 程序。
相比于之前看到的其他各种版本,TDM-GCC 的特点一个是“新”。目前其附带的 GCC 版本是 4.8.1,已经跟上了 Debian Testing 上的版本,而且是一个支持 C++11 的版本;另一个特点就是“卧槽还真的能用”。MinGW 总体状态感觉其实不是太靠谱。很多其他的 Windows 上的 GCC 编些自己写的小程序没问题,编别的东西的时候就少这少那各种错让人无比头疼。而 TDM-GCC 感觉这方面做的很好,很少会有奇怪的错误。另外它支持编译 32/64 的程序,默认静态链接标准库,编译出来的东西拷出去给别人就能用不需要附带一堆 dll 感觉非常棒。
如果你想在 Windows 上试试 GCC 的话,TDM-GCC 应该是目前最好的选择。
everything
用过 OSX 的用户一定知道右上角的 Spotlight 非常好用。everything 基本上就是 Windows 上的 Spotlight。装上后它需要花十分钟左右索引一遍硬盘,然后你就可以全局按照文件名来查找任何文件,并且瞬间得到结果。对于新建的文件或者重命名操作,everything 里也会立即获得结果,叼的令人发指。
它还附带一个简单的命令行接口,你可以轻易的把它的功能加入你的自动化脚本里。
mongoose
如果你是做 Web 开发的话那么应该经常有需要临时搭一个 HTTP 服务器来 serve 一些静态文件。Linux 下你可以软链到你的 /var/www
什么的,在 Windows 上似乎没有什么简单原生的方法。看到现在 mongoose 应该是当下不错的一个选择。下下来以后打开,选择你要 serve 的目录再在浏览器打开应该就可以了,和主流 HTTP 服务器一样它会自动处理 MIME Type,用来在开发过程中放静态文件绝对是够用了。
再比方说你要给你的同事传一个文件,除了开 QQ 来传以外用这个也是一个不错的选择。
PicPick / LICECap
如果你常开着 QQ 的话那么截图方面的需求基本就已经满足了。如果你需要更高级的功能或者不太开 QQ,PicPick 是一个不错的选择。一方面它有很多常见的截图软件功能,比如截取当前活动窗口,自动滚动窗口截取长网站图片等等。另一方面它还带上了很多实用工具,比如全屏取色器,可浮动的像素标尺,还有一个功能挺够用的图像编辑器。
如果你想截 gif 图片的话,LICEcap 可能是目前唯一一个免费开源的选择。好消息是它效果还挺不错,用起来也很有意思:你要把它的窗口像快门一样对到你要录制的地方然后开始录,开始前还有几秒准备时间。
Pandoc
Pandoc 是一个"万能文档转换器",但我基本上是用它来把 Markdown 转换成 PDF,.docx
这些蛋疼的格式。比如你的工作需要你用 Word 写文档,有了这个你就可以写 Markdown 然后用 Pandoc 转成 .docx
然后再把你的模板样式刷上去就好啦。
值得一提的是 Pandoc 是用 Haskell 写的,说不定这也是唯一一个常见民用的 Haskell 编写的软件。
C:\Bin 和 bat wrapper
收尾前介绍下我是怎么整理 Windows 上的命令行工具。我把大部分单个文件的命令行工具放在一个目录,比如 C:\Bin
,然后把这个路径放在 Path
上,这样里面的东西就能在命令行里直接用了。但很多像 CMake,Gradle 这样的工具下下来自己就有一个目录结构,不太好直接丢在 C:\Bin
里,这些一个个放在 Path
上又很麻烦。有一个方法就是建立一个 bat 文件来转接一下。比如我想要在命令行里调用 NAnt,我就在 C:\Bin
下建立 nant.bat
里面写:
@echo offC:\Bin\nant-0.92\bin\NAnt.exe %*
其中 %*
表示把所有的参数都转传给 NAnt.exe
。如果你有强迫症看不得硬编码的路径的话,可以写成这样用相对路径:
@echo off%~dp0nant-0.92\bin\NAnt.exe
%dp0
会被替换为该文件所在的目录。
最后
找些顺手的工具提高工作效率总是能让人感觉非常舒爽。希望这篇看完你也能找到些用的上的东西。