目標
不折騰,本著實用的原則,裝一個zsh,并使用oh-my-zsh的配置,讓它看上去跟mac差不多,使用體驗也差不多。
電腦是用來用的,不是用來折騰的,一切對于效率提升沒有幫助的美化,都是耍流氓,有這功夫還不如出去撩撩妹,和現實中的朋友面對面聊聊天,比對著電腦打字有意思多了。
對比
我之前使用mac工作的,不得不說,各種體驗確實很好,也有了一些使用習慣。現在突然換到win10,還真是有點不適應。為了裝一個類似mac的終端,我花了點時間學習了一下win10,可用的工具很多,但都沒有zsh用著順手,簡單總結如下:
powershell
win10自帶,裝了powerline字體后,并啟用utf-8支持,繼續安裝oh-my-posh,再配合conemu,可以讓它長得很好看,但是沒有zsh,沒有git alias,git log時中文亂碼,與vim集成時各種詭異的bug。
cmd
除了啟動比powershell快,沒有啥其他特點了。
cygwin
Cygwin is a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.
很多人在windows上都會推薦這個,確實,應該是最好用的linux shell了,但是在嘗試cygwin的時候,我已經配置好了我的終端環境,所以就沒有細細研究。網上已經有很多關于cygwin的配置和美化方式,我就不再贅述了。
wsl
這是我覺得win10上最好的功能之一,這是一個除虛擬機之外,windows上最真實的linux環境了,用來做測試、編譯等,真的時非常棒。但是如果用作日常shell,它確實有幾個問題讓我感覺不太順手。
- 部分功能不能和windows共享。比如java,windows上安裝后,wsl里也得安裝,二者不通用,類似的還有node、vim、git等。
- 用戶主目錄與windows不一致,各種profile不能共享。雖然通過定制用戶主目錄可以解決,但修改后仍然會有詭異的問題,主要集中在文件權限上。
- git下文件格式不一致。如果在wsl中安裝了git,windows上也安裝了git bash,并且代碼在windows上的某個目錄下,那么在wsl下使用git status時,會出現所有文件都已被修改的情況,估計是windows和linux的換行符不一致導致。
git bash
這是我覺得windows下最實用的終端工具了,wsl的各種問題在git bash下都不存在,除了沒有包管理工具,長得寒磣點,沒啥缺點。
babun
初次使用,有種驚艷的感覺,開箱即用,什么oh-my-zsh、git、vim、包管理,一應俱全,啥都有,要說唯一不足,安裝文件太大,啟動速度太慢,開個babun,可以強制自己喝口水,上個廁所。
Git for Windows SDK
這是我想推薦的一款軟件,相當于git bash的加強版,通過pacman進行包管理,補充了git bash的不足。官方網站:https://gitforwindows.org/
安裝
官網默認下載的是git bash,拖動滾動條到頁面的最低端,可以看到git for windows sdk的下載連接:
點擊下載,會得到一個3M多的自解壓exe:git-sdk-installer-1.0.7-64.7z.exe
雙擊文件,選擇解壓目錄
解壓縮后會自動開始安裝,安裝過程實際上就是從git上把文件下載到本地,對于國內用戶,可以先設置好代理。
全部文件下載完成后,是這個樣子
雙擊mingw64.exe,進入git for windows sdk
在桌面上創建一個快捷方式,在命令行窗口下,輸入
sdk create-desktop-icon
這樣就創建了桌面快捷方式,這種方法有個弊端,就是打開git for windows sdk后,默認是根目錄,不是用戶主目錄,如果想打開后自動是用戶主目錄,可以修改剛剛創建的快捷方式
修改字體是必不可少的工序,首推 DejaVu Sans Mono for Powerline
至此,git for windows sdk安裝完畢,看上去和git bash是一樣的,但是增加了pacman包管理,有了pacman,我們就可以安裝各類linux工具了。
簡單配置
默認界面雖然能用,但有了pacman的加持,可以通過安裝zsh和tmux,得到更好的體驗。
安裝zsh和oh-my-zsh
pacman -S zsh
oh-my-zsh的安裝請參考官方網站: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默認是單窗口應用,沒有tab頁,這可以通過tmux來解決。
pacman -S tmux
安裝完成后,輸入 tmux,進入tmux界面,再輸入zsh,即可愉快的使用git for windows sdk了
在工作到一半需要離開的時候,可以直接關掉git for windows sdk窗口,下次再打開后,直接輸入 tmux a,即可接著之前的工作繼續進行,方便。
tmux的一個小坑
tmux安裝完成后,打開vim,會發現很別扭,顏色不對
解決方法:https://unix.stackexchange.com/questions/1045/getting-256-colors-to-work-in-tmux
原因在上面的鏈接里已經詳細說了,簡單講,啟動tmux的時候,輸入:
tmux -2
這樣再啟動vim的時候,顏色就正常了
總結
cygwin其實也能實現,也許比git for windows sdk更簡單,更方便,只不過我沒有時間再繼續對比和研究了,cygwin很成熟,網上有很多教程可以參考。
而git for windows sdk相關的文章卻不多,所以我就花時間研究了下。還有另外一種方法,直接修改 /etc/profile.d/git-prompt.sh ,我覺得有點麻煩,并且還需要配置profile實現各種oh-my-zsh下的alias,不如直接安裝zsh和oh-my-zsh省事兒。
目前我只是輕度使用,尚未發現問題,隨著使用的深入,肯定會遇到問題,到時我會持續更新此文。