任何一個程式設計師都有自己喜愛的編輯器、工具、開發利器,有這樣一群人,對於 vim
這種上古神器難以駕馭、IDE
又太笨重,這時候多了一個選擇 vscode!!!
vscode 重新定義了編輯器,它開源、免費、Runs everywhere,是一款介於 IDE 和編輯器之間的產物,我們不能用 IDE 的所有特性都往它身上壓,如果都可以的話不就是 IDE 嗎?不就是嗎?所以用起來的感覺你懂的,美滋滋(๑•̀ㅂ•́) ✧
那麼這傢伙都有什麼牛逼之處呢?
特性
- 微軟開發,軟體質量沒的說
- 高顏值,介面非常漂亮,允許自定義更改
- 外掛超級多,開發者很願意接受它
- 對我天朝程式設計師友好,你懂的
- 啟動速度比 atom 快,資源佔用少
- 跨平臺的特效能沒有嗎?能嗎?
- 對各種程式語言支援良好(當然我只試過java/node/go/python)
- 自動補全、程式碼高亮、程式碼跳轉...
- 整合終端好用,可以用
code
命令開啟檔案/資料夾 debug
功能好用(簡直是 mini 的 IDE)- ( ⊙ o ⊙ )啊!特性太多了我實在寫不完
說了這麼多你一定迫不及待想嘗試吧~ (也許並不是)那現在
安裝 vscode
我知道在座的各位其實根本不用我教你怎麼安裝,因為它是傻瓜式安裝啊!它家的官網是 code.visualstudio.com/,你只需要在首頁下載符合你作業系統的軟體即可。
支援 Windows
、Linux
、Mac
。
瞭解 vsccde
為什麼要了解它呢?你不瞭解它的組成就不知道怎麼把它用好(高能型大佬除外)。
佈局
上面是 vscode 的佈局,和大多數編輯器一樣,分為
- Editor 用來編輯檔案的主體區域。可以並排開啟三個編輯器。
- Side Bar 包含不同的像瀏覽器一樣的檢視來協助來完成工程。
- Status Bar 展示當前開啟的工程和正在編輯的檔案的資訊。
- View Bar 在最左手邊,幫助切換檢視以及提供額外的上下文相關的提示,比如啟用了Git的情況下,需要提交的變化的數目。
在我看來學習一款編輯器並不用像學習程式語言那樣,按照某個教程把所有的功能都學會,我更喜歡探索性的嘗試自己需要的那些東西,比如在 View Bar 中如何的5個功能,其實點一點就大概明白什麼意思了,查閱文字資料只是讓自己更精確的掌握使用姿勢。
配置
vscode 的使用者配置分3個級別,分別是預設配置、全域性配置和工作區配置,優先順序也依次遞增。對於團隊專案,一些規範可以通過專案目錄下建一個 .vscode/setting.json
檔案進行配置,比如:
// tab長度
"editor.tabSize": 2,
// 啟用後,將在儲存檔案時剪裁尾隨空格。
"files.trimTrailingWhitespace": true,
// 配置 glob 模式以排除檔案和資料夾。
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.DS_Store": true,
"**/.idea": true
},
複製程式碼
這個配置我一般是不用的,只用使用者配置,反正電腦就一個使用者。配置一下字型大小、自動儲存等。
必裝外掛
- Beautify:程式碼高亮
- Terminal:直接喚起終端
- Project Manager:多個專案切換
- Auto Close Tag:標籤自動閉合(其實我覺得可以內建的)
怎麼安裝呢?
在擴充套件輸入框裡輸入你想用的外掛就可以了,當然它還會經常推薦給我們排行比較高的外掛,可以嘗試安裝,安裝完成後重新載入編輯器就可以使用了。
常用快捷鍵
下面這些快捷鍵是我常用的,如果你想看更全的可以看看 VS Code有哪些常用的快捷鍵
- 向上向下複製一行: Shift+Alt+Up 或 Shift+Alt+Down
- 註釋程式碼:
cmd + /
- 切換側邊欄:
cmd + b
- 資料夾中查詢:
cmd + shift + f
- 查詢替換:
cmd + shift + h
- 重構程式碼:
fn + F2
- 程式碼格式化:
Shift+Alt+F
,或Ctrl+Shift+P
後輸入format code
Ctrl+P 模式: (Mac 是 CMD+P)
- 直接輸入檔名,快速開啟檔案
>
顯示並執行命令:
跳轉到行數,也可以Ctrl+G直接進入(Mac 是 CMD+G)@
跳轉到symbol(搜尋變數或者函式),也可以Ctrl+Shift+O直接進入@:
根據分類跳轉symbol,查詢屬性或函式,也可以Ctrl+Shift+O後輸入:進入#
根據名字查詢symbol,也可以Ctrl+T
配置 Java 環境
先安裝 Java 語言相關的外掛 4 枚
有人想問了,媽耶還要4個外掛,這麼麻煩的嗎?
第一個外掛幹嘛的?執行 Java 程式碼的,第二個呢?除錯的,不除錯可以不裝,第三個執行單元測試,不測試可以不裝,第四個建議裝上,一個標準化的 Java 工程一定不是幾個檔案組成,maven 是在Java環境下構建應用程式的軟體(本地要先安裝哦)。
這時候還需要配置一下 java.home
,我的是
"java.home": "/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home",
複製程式碼
大功告成,現在你可以在 vs code 下建立一個 Mmp.java
開始寫 Hello vscode!
了。
public class Mmp {
public static void main(){
System.out.println("Hello vscode!");
}
}
複製程式碼
點選 除錯 或者按下 F5
執行這久經碼場的輸出語句。具體操作見文章底部視訊。
程式碼定位
按住 ctrl 鍵滑鼠懸停在類上面會有類描述,點選即可進入類定義處,方法也是同樣。
程式碼重構
很強大的一個地方就是我們有時候會修改欄位、方法的名稱。
- 找到所有的引用:
Shift + F12
- 同時修改本檔案中所有匹配的:
Ctrl+F12
- 重新命名:比如要修改一個方法名,可以選中後按
F2
,輸入新的名字,回車,會發現所有的檔案都修改了 - 跳轉到下一個
Error
或Warning
:當有多個錯誤時可以按F8
逐個跳轉 - 檢視
diff
: 在explorer
裡選擇檔案右鍵Set file to compare
,然後需要對比的檔案上右鍵選擇Compare with file_name_you_chose
執行 SpringBoot 專案
下載一個 SpringBoot
的示例工程
git clone https://github.com/JavaExamples/spring-boot-helloworld.git
code spring-boot-helloworld
複製程式碼
什麼?git
還不會
啟動除錯,選擇 Java
語言,會提示我們 launch.json
檔案是下面這樣的
{
// 使用 IntelliSense 瞭解相關屬性。
// 懸停以檢視現有屬性的描述。
// 欲瞭解更多資訊,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Debug (Launch)-Application<spring-boot-helloworld>",
"request": "launch",
"cwd": "${workspaceFolder}",
"console": "internalConsole",
"stopOnEntry": false,
"mainClass": "hello.Application",
"projectName": "spring-boot-helloworld",
"args": ""
},
{
"type": "java",
"name": "Debug (Attach)",
"request": "attach",
"hostName": "localhost",
"port": 0
}
]
}
複製程式碼
主要看 mainClass
,只有第一次生成這個檔案,確認後點選 除錯 即可看到控制檯日誌
嘗試 Lombok
這個傢伙你用不用都無妨,反正我是挺喜歡的。這裡就不囉嗦到底幹嘛的,簡單來說就是我可以用一個 @Data
註解幫我自動生成(編譯後生成)getter
、setter
、toString
、equals
、hashCode
這些方法,反正多花時間寫這些程式碼也不會提高你的能力,修改的時候還要多花時間,完全沒!必!要!好嗎?
按照官方的文件我嘗試了不在 maven
環境下是行不通的!行不通的。如果你可以的話在文章評論下告訴我哈~
所以我們安裝一個 Lombok Annotations Support for VS Code 就可以了。
在 maven 工程中新增 lombok
依賴
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
複製程式碼
試一下吧
大兄弟如果你能看到這裡可以跟我領取真經了,下方是本篇文章的視訊操作指南,敬請食用:
想看更多 vscode 技巧?點?下面的開發技巧集錦
我還有一個 QQ 群聊 Java8、聊程式碼、聊程式設計最前言,過於水群直接踢,車牌號:NjYzODg3NzI5