目標(biāo)
不折騰,本著實(shí)用的原則,裝一個(gè)zsh,并使用oh-my-zsh的配置,讓它看上去跟mac差不多,使用體驗(yàn)也差不多。
電腦是用來(lái)用的,不是用來(lái)折騰的,一切對(duì)于效率提升沒(méi)有幫助的美化,都是耍流氓,有這功夫還不如出去撩撩妹,和現(xiàn)實(shí)中的朋友面對(duì)面聊聊天,比對(duì)著電腦打字有意思多了。
對(duì)比
我之前使用mac工作的,不得不說(shuō),各種體驗(yàn)確實(shí)很好,也有了一些使用習(xí)慣?,F(xiàn)在突然換到win10,還真是有點(diǎn)不適應(yīng)。為了裝一個(gè)類(lèi)似mac的終端,我花了點(diǎn)時(shí)間學(xué)習(xí)了一下win10,可用的工具很多,但都沒(méi)有zsh用著順手,簡(jiǎn)單總結(jié)如下:
powershell
win10自帶,裝了powerline字體后,并啟用utf-8支持,繼續(xù)安裝oh-my-posh,再配合conemu,可以讓它長(zhǎng)得很好看,但是沒(méi)有zsh,沒(méi)有g(shù)it alias,git log時(shí)中文亂碼,與vim集成時(shí)各種詭異的bug。

cmd
除了啟動(dòng)比powershell快,沒(méi)有啥其他特點(diǎn)了。
cygwin
Cygwin is a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.
很多人在windows上都會(huì)推薦這個(gè),確實(shí),應(yīng)該是最好用的linux shell了,但是在嘗試cygwin的時(shí)候,我已經(jīng)配置好了我的終端環(huán)境,所以就沒(méi)有細(xì)細(xì)研究。網(wǎng)上已經(jīng)有很多關(guān)于cygwin的配置和美化方式,我就不再贅述了。
wsl
這是我覺(jué)得win10上最好的功能之一,這是一個(gè)除虛擬機(jī)之外,windows上最真實(shí)的linux環(huán)境了,用來(lái)做測(cè)試、編譯等,真的時(shí)非常棒。但是如果用作日常shell,它確實(shí)有幾個(gè)問(wèn)題讓我感覺(jué)不太順手。
- 部分功能不能和windows共享。比如java,windows上安裝后,wsl里也得安裝,二者不通用,類(lèi)似的還有node、vim、git等。
- 用戶(hù)主目錄與windows不一致,各種profile不能共享。雖然通過(guò)定制用戶(hù)主目錄可以解決,但修改后仍然會(huì)有詭異的問(wèn)題,主要集中在文件權(quán)限上。
- git下文件格式不一致。如果在wsl中安裝了git,windows上也安裝了git bash,并且代碼在windows上的某個(gè)目錄下,那么在wsl下使用git status時(shí),會(huì)出現(xiàn)所有文件都已被修改的情況,估計(jì)是windows和linux的換行符不一致導(dǎo)致。
git bash
這是我覺(jué)得windows下最實(shí)用的終端工具了,wsl的各種問(wèn)題在git bash下都不存在,除了沒(méi)有包管理工具,長(zhǎng)得寒磣點(diǎn),沒(méi)啥缺點(diǎn)。
babun
初次使用,有種驚艷的感覺(jué),開(kāi)箱即用,什么oh-my-zsh、git、vim、包管理,一應(yīng)俱全,啥都有,要說(shuō)唯一不足,安裝文件太大,啟動(dòng)速度太慢,開(kāi)個(gè)babun,可以強(qiáng)制自己喝口水,上個(gè)廁所。
Git for Windows SDK
這是我想推薦的一款軟件,相當(dāng)于git bash的加強(qiáng)版,通過(guò)pacman進(jìn)行包管理,補(bǔ)充了git bash的不足。官方網(wǎng)站:https://gitforwindows.org/
安裝
官網(wǎng)默認(rèn)下載的是git bash,拖動(dòng)滾動(dòng)條到頁(yè)面的最低端,可以看到git for windows sdk的下載連接:

點(diǎn)擊下載,會(huì)得到一個(gè)3M多的自解壓exe:git-sdk-installer-1.0.7-64.7z.exe
雙擊文件,選擇解壓目錄

解壓縮后會(huì)自動(dòng)開(kāi)始安裝,安裝過(guò)程實(shí)際上就是從git上把文件下載到本地,對(duì)于國(guó)內(nèi)用戶(hù),可以先設(shè)置好代理。

全部文件下載完成后,是這個(gè)樣子

雙擊mingw64.exe,進(jìn)入git for windows sdk

在桌面上創(chuàng)建一個(gè)快捷方式,在命令行窗口下,輸入
sdk create-desktop-icon
這樣就創(chuàng)建了桌面快捷方式,這種方法有個(gè)弊端,就是打開(kāi)git for windows sdk后,默認(rèn)是根目錄,不是用戶(hù)主目錄,如果想打開(kāi)后自動(dòng)是用戶(hù)主目錄,可以修改剛剛創(chuàng)建的快捷方式

修改字體是必不可少的工序,首推 DejaVu Sans Mono for Powerline

至此,git for windows sdk安裝完畢,看上去和git bash是一樣的,但是增加了pacman包管理,有了pacman,我們就可以安裝各類(lèi)linux工具了。

簡(jiǎn)單配置
默認(rèn)界面雖然能用,但有了pacman的加持,可以通過(guò)安裝zsh和tmux,得到更好的體驗(yàn)。
安裝zsh和oh-my-zsh
pacman -S zsh
oh-my-zsh的安裝請(qǐng)參考官方網(wǎng)站:https://github.com/robbyrussell/oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
全部安裝完成后,輸入zsh,即可看到熟悉的界面了

安裝tmux
由于git for windos sdk和git bash默認(rèn)是單窗口應(yīng)用,沒(méi)有tab頁(yè),這可以通過(guò)tmux來(lái)解決。
pacman -S tmux
安裝完成后,輸入 tmux,進(jìn)入tmux界面,再輸入zsh,即可愉快的使用git for windows sdk了

在工作到一半需要離開(kāi)的時(shí)候,可以直接關(guān)掉git for windows sdk窗口,下次再打開(kāi)后,直接輸入 tmux a,即可接著之前的工作繼續(xù)進(jìn)行,方便。
tmux的一個(gè)小坑
tmux安裝完成后,打開(kāi)vim,會(huì)發(fā)現(xiàn)很別扭,顏色不對(duì)

解決方法:https://unix.stackexchange.com/questions/1045/getting-256-colors-to-work-in-tmux
原因在上面的鏈接里已經(jīng)詳細(xì)說(shuō)了,簡(jiǎn)單講,啟動(dòng)tmux的時(shí)候,輸入:
tmux -2
這樣再啟動(dòng)vim的時(shí)候,顏色就正常了

總結(jié)
cygwin其實(shí)也能實(shí)現(xiàn),也許比git for windows sdk更簡(jiǎn)單,更方便,只不過(guò)我沒(méi)有時(shí)間再繼續(xù)對(duì)比和研究了,cygwin很成熟,網(wǎng)上有很多教程可以參考。
而git for windows sdk相關(guān)的文章卻不多,所以我就花時(shí)間研究了下。還有另外一種方法,直接修改 /etc/profile.d/git-prompt.sh ,我覺(jué)得有點(diǎn)麻煩,并且還需要配置profile實(shí)現(xiàn)各種oh-my-zsh下的alias,不如直接安裝zsh和oh-my-zsh省事兒。
目前我只是輕度使用,尚未發(fā)現(xiàn)問(wèn)題,隨著使用的深入,肯定會(huì)遇到問(wèn)題,到時(shí)我會(huì)持續(xù)更新此文。