前些天因為從mac被迫轉(zhuǎn)向windows,讓我吐槽了半天,到現(xiàn)在狀況并沒有得到根本改變。不過折騰了這些天我也逐漸把我的windows環(huán)境改造得還能用了,今天分享一下這個過程,給廣大使用windows編程的小朋友們提供點素材。
我把windows上的程序員分兩種,一種是其實不需要windows也能干活的,比如大多數(shù)做web開發(fā)的、嵌入式開發(fā)的還有android移動開發(fā)的等等,這些開發(fā)工作在linux和mac上其實也是可以做得不錯;還有一種是必須是要在windows上開發(fā)的,例如開發(fā)windows桌面應(yīng)用的。很多人其實是因為一些原因沒有用過其他系統(tǒng),所以習(xí)慣性地只在windows上工作,而還有一些人是覺得windows挺好,從沒想過切換的,這里也要分別對待一下。
首先我大部分時間是第一類人。因為我對windows實在沒太多感情,并且我知道將來必然會用到先進的linux,因此我希望能夠?qū)W一套東西,在多個系統(tǒng)上都好用。因此我在windows上優(yōu)先選擇cygwin這樣的linux工具移植包。cygwin這個東西有好也有壞,好處是基本上包含了所有l(wèi)inux的工具和程序,例如find, grep, ack, ruby, python, ssh和git等,而且命令行支持bash腳本,支持readline通用操作,命令行窗口可以隨意拖動調(diào)節(jié)大小,在win7上背景還可以設(shè)置為半透明;缺點是沒有yum或者apt這樣的包管理工具,想裝個東西必須打開一個圖形界面點擊一通,而且這東東挺大,完全安裝要占好幾個G的空間。不過一旦裝上基本上linux下的東西都可以用了,最重要的是你可以直接用ssh而不用安裝putty,可以有ruby、python而不用下載單獨的二進制包安裝,而且bash腳本也比bat腳本強太多了。
解決了最重要的命令行工具之后,接下來就是編輯器,這個不用多說,emacs是我的選擇,我在linux、mac和win上都可以用,快捷鍵和配置都一樣。當(dāng)然如果你嫌麻煩,sublime text也很不錯,簡單好用,還不要錢,比ultraedit,notepad++要強很多。當(dāng)然,最后不恩能夠忘了用Vi的兄弟們。
用慣了mac的spotlight search之后,我也已經(jīng)無法忍受在win下每次去手動尋找程序了,launchy幫我解決了這個問題,所有程序和文件,只要ctrl+space就能找到。
對于我來說,這些東西讓我這幾天的工作好受了不少。然而對于windows鐵桿用戶,還有更多選擇。
首先如果你忍受不了cygwin和linux風(fēng)格的命令,偏偏鐘愛win下的cmd風(fēng)格,那你一定也要用用powershell,powershell應(yīng)該說是不錯的工具了,背后可以調(diào)用整個.Net的庫,而且也支持編程擴展(看看power GUI)。我曾經(jīng)用它寫過一個腳本用來自動化安裝開發(fā)環(huán)境所需軟件,功能挺強,老的win32應(yīng)用也能處理。然而powershell沒有解決cmd的一些問題,比如自動完成,這個可以用powertab來彌補。另有一票的powershell社區(qū)擴展可以用來增強。
最后,一定要用chocolatey,這個東西簡直是彌補了windows多少年來沒有中央包管理工具的缺憾,以后裝什么再不用一個個下載然后狂點鼠標(biāo)安裝了,而且還更容易將安裝和配置校本化。chocolatey構(gòu)建在nuget之上,作為體面的程序員,你也一定要去看看nuget。