--- tags: sysprog --- # Visual Studio Code > 教學影片:==[開開心心學 Visual Studio Code](https://www.youtube.com/watch?v=6wOMBd_8d_8&list=PL6S9AqLQkFpph4LOfSjtD-s4WB3pNh5M3)== ## 簡介 [Visual Studio Code](https://github.com/Microsoft/vscode) 是由 Microsoft 開發、支援 Windows, Linux 和 macOS 等作業系統的開放原始碼程式編輯器。 ## 安裝與執行 * 先到[下載頁面](https://code.visualstudio.com/download)取得合適的安裝檔案 :::info 以下說明 Linux Debian/Ubuntu (副檔名為 `.deb`) 及 Windows 的安裝方式 ::: ### Linux Debian, Ubuntu(.deb) #### 可選擇以下方式安裝: * 透過 [snap](https://snapcraft.io/docs) 安裝 ```shell $ sudo snap install --classic code ``` * 下載 `.deb` 檔並執行`sudo dpkg -i <file>.deb`命令安裝 * 注意`<file>` 的路徑 * 新增 apt repository 後執行 `apt` 命令安裝。 ```shell $ sudo apt-get update $ sudo apt-get install code ``` 這樣就完成安裝囉! 延伸閱讀: [Visual Studio Code on Linux](https://code.visualstudio.com/docs/setup/linux) #### 執行 三種方法: * 在終端機下 `code` 開啟 * 終端機下`code <file_name>` ,使用 code 開啟特定檔案 * 在應用程式列表搜尋 code 並開啟 ### Windows #### 安裝 * 下載完成後直接點開 Installer 等待安裝結束即可 * 64-bit 電腦的預設安裝路徑為 `C:\Program Files (x86)\Microsoft VS Code` 延伸閱讀: [Visual Studio Code on Windows](https://code.visualstudio.com/docs/setup/windows) #### 執行 * 雙擊 VS code 的圖示開啟 ## 界面說明 ![image](https://hackmd.io/_uploads/rydz7sJia.png) ### 選單 選單左側的 5 個圖示最常用,點擊側欄 (B) 就會開啟,再點一下關閉 由上而下依序說明: * **檔案總管**︰ * 可以在此選擇要打開的檔案或目錄 * 以樹狀結構一層層顯示 * 可以在指定目錄下**新增 / 刪除**檔案或目錄 * **跨檔案搜尋**: * 在編輯區的檔案搜尋: ctrl + f * 在開啟的目錄下搜尋: shift + ctrl + f * 可進行搜尋及取代 (可使用 [regular expression](https://en.wikipedia.org/wiki/Regular_expression)) * 可指定要搜尋或要排除的檔案 ![image](https://hackmd.io/_uploads/rkNXXoki6.png) * **Git** * 若以設定好 git repository,則可以在此執行各式 git 操作。如: pull, push, commit... * 可以點選下方面板 (E) 的「輸出」查看 git 的訊息 * **偵錯** * 各式 debugger (網頁也可) * 可以設立 breakpoint * debug 前須設定好組態檔 `launch.json` * **擴充套件** * 各式套件可在此自由選取安裝 ![image](https://hackmd.io/_uploads/B1vNXsJia.png) ## 設定 Visual Studio Code 有許多設定可依照使用者偏好變更,設定檔都採 **json** 格式,而擴充套件的設定值也是在此更改。 Visual Studio Code 的設定檔 (含後面會介紹的 debug 設定檔) 都是 json 格式。沒有使用過或學過 json 的人不用擔心,參照預設檔案即可一目了然! **格式**: `"要設定的目標" : 值` 每一個設定值都有詳盡的 **==中文==** 解說,讓你我都更清楚每個設定值對應的功能!但擴充套件的設定說明可能就只有英文。 **改完記得存檔喔!** * **開啟設定檔** * 檔案 $\to$ 喜好設定 $\to$ 設定 * 開啟時的歡迎頁面右側點選 **組態設定** :::danger 欲變動設定須在右邊的編輯區重新輸入,左側的預設值是不能更改的 ::: * 例圖: ![image](https://hackmd.io/_uploads/HyDtmikjT.png) ### 程式碼風格及縮排 * 縮排: - 預設的 Tab 就已是 4 個空白,所以不必再更動。 * 程式碼風格: - [Trunk Check](https://marketplace.visualstudio.com/items?itemName=Trunk.io) - [astyle](https://marketplace.visualstudio.com/items?itemName=Lukamicoder.AStyleExtension) ### 色彩主題及圖示設定 這應該也是許多人很注重的一點 —— 自訂佈景主題!顏色不對,工作起來就渾身不對,來挑一個自己喜歡的環境吧! * **開啟色彩主題設定選單** * 檔案 $\to$ 喜好設定 $\to$ 色彩佈景主題 * 開啟時的歡迎頁面右側點選 **色彩佈景主題** 開啟之後已有內建的多種選擇,若還是不喜歡,會引導你至 **擴充套件** (Marketplace) 下載安裝。 在擴充套件點擊一下主題可以預覽套用後的樣子,如圖: ![image](https://hackmd.io/_uploads/HkwMVj1i6.png) * **開啟圖示設定選單** * 檔案 $\to$ 喜好設定 $\to$ 檔案圖示佈景主題 一樣可以預覽,如圖: ![](https://i.imgur.com/G9NThuS.png) ### 快速鍵設定 能夠自訂慣用的快速鍵也是重要的! [預設的功能說明](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdf) * **安裝套件** 若本來有**慣用編輯器的人**轉用 VS Code,可以直接在擴充套件找到套件!這樣就不用再改快速鍵的使用習慣囉~ 有 Vim, Sublime, Atom, Emacs, Eclipse... * 檔案 $\to$ 喜好設定 $\to$ 按鍵對應延伸模組 * **手動調整** 設定檔一樣為 json 格式,且也是左欄為不可更動的預設值,右欄為使用者自訂 * **開啟設定檔** * 檔案 $\to$ 喜好設定 $\to$ 鍵盤快速鍵 ## 版本控制系統 還不熟悉 Git 的朋友,可參考[Git 教學和 GitHub 設定指引](https://hackmd.io/@sysprog/git-with-github)。 :::warning 請先自行[安裝 Git 相關套件](https://git-scm.com/download) ::: 遇進入 Git 畫面請點選選單 (A) 的第 4 個圖示,更新後圖示有變喔!如下圖: ![image](https://hackmd.io/_uploads/HyYYVs1sa.png) **開始!** * 在 [GitHub](https://github.com/) 建立好遠端 repository 後,使用 clone 命令至本地端 `$ git clone [repository-url]` * 使用 VS Code 開啟剛剛 clone 下來的目錄 (檔案 $\to$ 開啟目錄) VS Code 會自己抓取這個目錄的 Git 資訊 ### 基本操作 只要修改、新增或刪除檔案,對 Git 而言都是狀態改變。因此一修改完且存檔後,Git 的圖示就會跳通知。 #### 狀態 例如我在目錄下**建立一個空白檔案 `vivian.txt`**,再**修改 stopwatch.c**,並存檔 * Git 的圖示除了跳通知外,在 "CHANGES" 底下尚有 * 剛建好的 vivian.txt 且標注為 **U**,代表此檔案的狀態為 **Untracked file** * 修改的 stopwatch.c,標注為 **M**,代表此檔案狀態為 **Modified** ![image](https://hackmd.io/_uploads/HJ5T4jyop.png) * **git add** 滑鼠一至檔案上方會出現一個 **+** 號,或是右鍵點選檔案點選 **暫存檔案** 這就是 `$ git add [file]` 的意思 ![image](https://hackmd.io/_uploads/H1v0Ns1sa.png) * git add 完後,檔案會移至 **"STAGED CHANGES"** 如果想撤回就按下 **-** 號 ![image](https://hackmd.io/_uploads/BymJHoJoT.png) #### commit & push commit 的資訊打在上方訊息欄就好囉! * 提交 commit 就按上方的 **"v"**,或 ctrl + Enter * 撤回 commit : `...` $\to$ 復原上次認可 ![](https://i.imgur.com/m2MDIRm.png) * commit 訊息也可以打多行!按下 enter 換行就好 ![](https://i.imgur.com/O0eUP4s.png) **push** * push : 點選 `...` $\to$ 推送 * 接下來就是標準流程的輸入 username, pwd * 然後就成功囉! * 可以在終端機下 `$ git log` 確認,或使用接著要介紹的況充套件查看 ### Git log VS Code 也有許多好用的套件能讓使用者更加了解現今專案的狀態,不論是 branch 或歷史紀錄。透過圖形視覺化的呈現,更讓人一目了然。 :::info 這裡介紹 [Git History(git log)](https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory) 套件,請大家先裝好囉! :warning: 要使用這個套件,當然要先開啟目標專案! ::: 我們以剛剛的同一個專案為例,如要觀看整個 git log,請先按下 ctrl + shift + P 叫出 **命令選擇區**,可以把它視為 VS Code 的 command line,許多擴充套件也須經由這個地方下命令。 * 叫出命令列後打 `>git h` 就會出現幾個選項,如圖: ![image](https://hackmd.io/_uploads/ByFrHoksa.png) 接著請選擇第二個 `Git: View History (git log)` * 接著就可以看到以下畫面,清楚的呈現 git log,點選任一 commit 可以看到詳細訊息。 ![image](https://hackmd.io/_uploads/S1y8Ss1oa.png) * 點選任一 commit 中有變更過的檔案甚至還可以與前一版本或本地端版本比對 下圖為與該 commit 前一版的比對 ![image](https://hackmd.io/_uploads/SJqLSsyjT.png) :::danger 目前限制: 課堂上使用的 pre-commit git hook (檢查 commit message) 無法順利跑出結果 ::: ## 偵錯 :::info **預設的 debugger 為 Node.js, JavaScript, Typescript** ::: 若要有其他語言的 debugger 首先要到擴充套件區下載該語言的套件,此篇教學以 gdb 為主。 **請先下載 [Native debug](https://marketplace.visualstudio.com/items?itemName=webfreak.debug) 套件** ### 進入 debug 環境 > :warning: 記得要先編譯出執行檔! * 直接按 F5,直接選擇要使用的 debugger,組態設定會直接開啟。 ![image](https://hackmd.io/_uploads/SyfKBiysa.png) * 點選選單中的第 4 個圖示,由於還未設定任何組態,所以先按下「齒輪」,並選擇 GDB ![image](https://hackmd.io/_uploads/SJcYHjyjT.png) #### 組態設定檔 一樣是 json 格式,只需要改設定檔的 **target** (下圖中紅色框內),改成執行檔的所在目錄就好,其他部份都已經自動設定好囉! 改好後記得 **存檔** 喔! ![image](https://hackmd.io/_uploads/Sk1sHiJoT.png) #### start debugging! * 按下 **綠色播放鍵**,就開始 debug 囉! ![image](https://hackmd.io/_uploads/SyqoBjyiT.png) * 開始後會開啟下方的 **偵錯面板** 程式執行後的輸出結果也會出現在此區 ![image](https://hackmd.io/_uploads/Sk73roJsT.png) * **breakpoint** * 在行號旁邊點一下就設好 breakpoint,再點一下移除 breakpoint * 對某個 breakpoint 點選右鍵可以選擇三種操作:移除、停用、編輯(可以設定條件式,當條件觸發時中斷點才作用) ![](http://i.imgur.com/emSLGzE.png) * 中斷時如下圖 ![](http://i.imgur.com/e94Vthf.png) * 單步執行等操作在整個視窗上方 ![](http://i.imgur.com/NWNq6zN.png) * **GDB 命令** VS Code 提供的 debugger 命令有限,但其他的 GDB 命令還是可以執行!! 在面板中的偵錯主控台最下方就是一個命令輸入列了!如下圖: ![](http://i.imgur.com/Ii3frnK.png) * GDB 教學連結: [除錯程式: gdb](https://www.cyut.edu.tw/~ckhung/b/c/gdb.php) ## 更新版本 VS Code 的更新速度很快,若有最新版本可以更新,打開 Code 的時候最上方會出現提醒訊息,如圖: ![](https://i.imgur.com/W6ZB1yS.png) * 點下 **立即下載** 會導入更新包下載網頁 ![](https://i.imgur.com/ZqJt61o.png) * 接著執行下列命令 ```shell # 注意`<file>` 的路徑 $ sudo dpkg -i <file>.deb $ sudo apt-get update ``` 更新完成!! 重新打開 VS Code 會顯示新版本資訊