工做這幾年,雖然也有在服務器上用 vim 開發的經驗,可是我的的工做環境一直是 windows,要說爲何,一個是不太喜歡 Mac 稍顯封閉的風格(Linux 就不說了,軟件太少),再一個這幾年 windows 也在不斷的改善本身,使本身的產品變得更加方便好用,我喜歡這種不斷改變嘗試的風格,可能也是情懷的一種吧html
爲了使本身的工做環境更加方便,先後使用了 git bash , cygwin 等模擬 linux 命令行的工具,但都有這樣那樣的問題,直到前不久 windows 更新發布了 windows 子系統 WSL(Windows Subsystem for Linux) ,這是微軟面向開發者的又一次嘗試,畢竟是一個完整的 linux 系統,命令行的體驗上比模擬器不知道高到哪裏去了,所以我看好這個系統,也將本身的工做中心遷移到 WSL 裏,在這裏給你們分享一下,但願還堅持在 windows 下的前端er能經過這篇文章打造出本身心目中理想的工做站前端
1. 安裝 WSL
1.1 開啓 WSL 功能
首先須要在 windows 的 [ 啓用或關閉 Windows 功能 ] 中開啓 [ 適用於 Linux 的 Windows 子系統 ]node
1.2 下載 Linux
去應用商店搜索 Linux 就會看到目前提供的三個 Linux 子系統,在這裏我選擇了經典的 Ubuntu linux
通過上面的步驟,基本命令行工做空間已經搭建起來了,可是咱們確定不能就這麼在命令行裏寫代碼,最後仍是要回歸到 IDE 裏面來,那麼這就有個很嚴峻的問題了,雖然 Linux 系統在 windows 下能夠運行的很完美了,但說到底仍是兩個系統,他們的文件類型不一樣,權限系統也天差地別
我曾經天真的經過 IDE 直接打開 WSL 下的項目,是的,你能夠在 windows 文件資源管理器 裏找到 WSL 下的全部文件,也能夠在 IDE 裏打開並編輯,可是以後的事情是個災難:整個項目的文件權限被更改、新添加的文件在 WSL 下沒法展現,甚至 git 命令也由於奇怪的權限問題而不可用了
因此沒辦法了嗎? 辦法仍是有的,不過路子比較野
還記得10年前(可能沒那麼遠 = =!)咱們都在用 windows 系統,而服務器都是 遠程 Linux 系統,那時沒有如今這麼流行的 MacOS ,咱們是怎麼用 IDE 編程的呢,沒錯,FTP 或者 SFTP,那咱們可不能夠換個思路,經過 SFTP 或者 FTP 鏈接到咱們本地的 WSL 呢,答案是確定的,並且我認爲目前只有這麼一種方法可以很好的和 WSL 結合起來使用
2018年9月21日更新
在一次查詢 VSCode 選項過程當中(是的,我打算放棄 webstorm),我發現了廣大勞動人民的偉大功績,沒錯,如今能夠在 WSL 中使用圖形化界面,那麼咱們也能夠直接使用 Linux 下的 IDE 來直接開發,這無疑讓咱們更加接近原生 Linux 開發,也預示着 windows 即將成爲最受歡迎的 Linux 發行版(滑稽)
4.1 經過 Linux 下的 IDE 進行開發(推薦)
4.1.1 安裝 X-Server
簡單的說這個東西就是用於把遠程的 Linux 圖形展現在本地,固然這裏咱們展現的是本地的 Linux
if [ $(ps -ax | grep dbus-daemon | wc -l) -eq 1 ]; then
dbus-launch fcitx > /dev/null 2>&1
fi複製代碼
若是啓動 fcitx 時報以下錯誤
D-Bus library appears to be incorrectly set up; failed to read machine uuid: UUID file '/etc/machine-id' should contain a hex string of length 32, not length 0, with no other text
複製代碼
則使用以下命令
sudo dbus-uuidgen --ensure
調整快捷鍵
接下來須要調整一下快捷鍵位設置,不能和 windows 的輸入法鍵位衝突
fcitx-configtool
運行以後會看到一個設置界面
選擇 Global Config
這裏我把第一行切換輸入法的設置改成了 左 Ctrl 鍵位,和 windows 的 Shift 鍵位有所區別
若是打開設置界面沒有找到谷歌中文輸入法,能夠用左下角+號添加進來
成功安裝後使用 VSCode 的界面
總結
至此,直接在 wsl 內使用 VSCode 開發就基本完成了,接下來一些配置項和其餘平臺的並沒有區別,也能夠直接用 VSCode 運行命令、打斷點等一系列複雜操做了,惟一的問題是在某些 DPI 比較高的電腦上,打開 VSCode 會有一點模糊,這是因爲縮放倍數致使的,而若是以正常 DPI 效果打開,又太過於小了...這方面還須要繼續優化,可是在代碼體驗上,無疑要更加接近原生的 Linux 開發,同時也保留了 windows 應用軟件的優點
但願個人這篇分享,能讓在 windows 下備受煎熬與冷眼的程序員們,能夠找到一點光明,也但願微軟在將來能夠更好的發揮出 WSL 的優點,有問題你們能夠敲我,我也仍在繼續摸索中
2018年9月21日更新
不知不覺又過了一年,最近忙這忙那,博客也停了很久,可是,奮戰在 windows 的工程師們顯然沒有放棄 WSL ,層出不窮的技術方案,讓開發趨於完美,你們都在爲更好的在 windows 上開發而努力,而微軟也繼續更新優化着這一個業務,我相信,一個不斷追求進步,敢於改進的軟件是不會被時代淘汰的,他將在將來的某個時間節點,以一種厚積薄發的形式再次站在你們的面前(好了好了,新聞聯播稿都出來了)