前些天因为从mac被迫转向windows,让我吐槽了半天,到现在状况并没有得到根本改变。不过折腾了这些天我也逐渐把我的windows环境改造得还能用了,今天分享一下这个过程,给广大使用windows编程的小朋友们提供点素材。
我把windows上的程序员分两种,一种是其实不需要windows也能干活的,比如大多数做web开发的、嵌入式开发的还有android移动开发的等等,这些开发工作在linux和mac上其实也是可以做得不错;还有一种是必须是要在windows上开发的,例如开发windows桌面应用的。很多人其实是因为一些原因没有用过其他系统,所以习惯性地只在windows上工作,而还有一些人是觉得windows挺好,从没想过切换的,这里也要分别对待一下。
首先我大部分时间是第一类人。因为我对windows实在没太多感情,并且我知道将来必然会用到先进的linux,因此我希望能够学一套东西,在多个系统上都好用。因此我在windows上优先选择cygwin这样的linux工具移植包。cygwin这个东西有好也有坏,好处是基本上包含了所有linux的工具和程序,例如find, grep, ack, ruby, python, ssh和git等,而且命令行支持bash脚本,支持readline通用操作,命令行窗口可以随意拖动调节大小,在win7上背景还可以设置为半透明;缺点是没有yum或者apt这样的包管理工具,想装个东西必须打开一个图形界面点击一通,而且这东东挺大,完全安装要占好几个G的空间。不过一旦装上基本上linux下的东西都可以用了,最重要的是你可以直接用ssh而不用安装putty,可以有ruby、python而不用下载单独的二进制包安装,而且bash脚本也比bat脚本强太多了。
解决了最重要的命令行工具之后,接下来就是编辑器,这个不用多说,emacs是我的选择,我在linux、mac和win上都可以用,快捷键和配置都一样。当然如果你嫌麻烦,sublime text也很不错,简单好用,还不要钱,比ultraedit,notepad++要强很多。当然,最后不恩能够忘了用Vi的兄弟们。
用惯了mac的spotlight search之后,我也已经无法忍受在win下每次去手动寻找程序了,launchy帮我解决了这个问题,所有程序和文件,只要ctrl+space就能找到。
对于我来说,这些东西让我这几天的工作好受了不少。然而对于windows铁杆用户,还有更多选择。
首先如果你忍受不了cygwin和linux风格的命令,偏偏钟爱win下的cmd风格,那你一定也要用用powershell,powershell应该说是不错的工具了,背后可以调用整个.Net的库,而且也支持编程扩展(看看power GUI)。我曾经用它写过一个脚本用来自动化安装开发环境所需软件,功能挺强,老的win32应用也能处理。然而powershell没有解决cmd的一些问题,比如自动完成,这个可以用powertab来弥补。另有一票的powershell社区扩展可以用来增强。
最后,一定要用chocolatey,这个东西简直是弥补了windows多少年来没有中央包管理工具的缺憾,以后装什么再不用一个个下载然后狂点鼠标安装了,而且还更容易将安装和配置校本化。chocolatey构建在nuget之上,作为体面的程序员,你也一定要去看看nuget。