學會用好 Visual Studio Code(轉(zhuǎn))

https://www.nshen.net/article/2015-11-20/vscode/







學會用好 Visual Studio Code

發(fā)表于 2015年11月21日

Visual Studio Code是個牛逼的編輯器野芒,啟動非臣势穑快,完全可以用來代替其他文本文件編輯工具。又可以用來做開發(fā),支持各種語言,相比其他IDE,輕量級完全可配置還集成Git感覺非常的適合前端開發(fā)踪央,是微軟親生的想必TypeScript會支持的非常好。 所以我仔細研究了一下文檔未來可能會作為主力工具使用瓢阴。

主命令框 Command Palette

最重要的功能就是?F1?或?Ctrl+Shift+P?打開的命令面板了畅蹂,在這個命令框里可以執(zhí)行VSCode的任何一條命令,可以查看每條命令對應的快捷鍵荣恐,甚至可以關閉這個編輯器液斜。

按一下Backspace會進入到Ctrl+P模式里

Ctrl+P 模式

在Ctrl+P下輸入>又可以回到主命令框?Ctrl+Shift+P模式累贤。

在Ctrl+P窗口下還可以

直接輸入文件名,快速打開文件

??列出當前可執(zhí)行的動作

!?顯示Errors或Warnings少漆,也可以Ctrl+Shift+M

:?跳轉(zhuǎn)到行數(shù)臼膏,也可以Ctrl+G直接進入

@?跳轉(zhuǎn)到symbol(搜索變量或者函數(shù)),也可以Ctrl+Shift+O直接進入

@:根據(jù)分類跳轉(zhuǎn)symbol检疫,查找屬性或函數(shù)讶请,也可以Ctrl+Shift+O后輸入:進入

#?根據(jù)名字查找symbol祷嘶,也可以Ctrl+T

常用快捷鍵

編輯器與窗口管理

同時打開多個窗口(查看多個項目)

打開一個新窗口:?Ctrl+Shift+N

關閉窗口:?Ctrl+Shift+W

同時打開多個編輯器(查看多個文件)

新建文件?Ctrl+N

歷史打開文件之間切換?Ctrl+Tab屎媳,Alt+Left,Alt+Right

切出一個新的編輯器(最多3個)Ctrl+\论巍,也可以按住Ctrl鼠標點擊Explorer里的文件名

左中右3個編輯器的快捷鍵Ctrl+1?Ctrl+2?Ctrl+3

3個編輯器之間循環(huán)切換 Ctrl+`

編輯器換位置烛谊,Ctrl+k然后按Left或Right

代碼編輯

格式調(diào)整

代碼行縮進Ctrl+[,?Ctrl+]

折疊打開代碼塊?Ctrl+Shift+[嘉汰,?Ctrl+Shift+]

Ctrl+C?Ctrl+V如果不選中丹禀,默認復制或剪切一整行

代碼格式化:Shift+Alt+F,或Ctrl+Shift+P后輸入format code

修剪空格Ctrl+Shift+X

上下移動一行:?Alt+Up?或?Alt+Down

向上向下復制一行:?Shift+Alt+Up或Shift+Alt+Down

在當前行下邊插入一行Ctrl+Enter

在當前行上方插入一行Ctrl+Shift+Enter

光標相關

移動到行首:Home

移動到行尾:End

移動到文件結尾:Ctrl+End

移動到文件開頭:Ctrl+Home

移動到后半個括號?Ctrl+Shift+]

選中當前行Ctrl+i

選擇從光標到行尾Shift+End

選擇從行首到光標處Shift+Home

刪除光標右側的所有字Ctrl+Delete

Shrink/expand selection:?Shift+Alt+Left和Shift+Alt+Right

Multi-Cursor:可以連續(xù)選擇多處鞋怀,然后一起修改双泪,Alt+Click添加cursor或者Ctrl+Alt+Down?或?Ctrl+Alt+Up

同時選中所有匹配的Ctrl+Shift+L

Ctrl+D下一個匹配的也被選中(被我自定義成刪除當前行了,見下邊Ctrl+Shift+K)

回退上一個光標操作Ctrl+U

重構代碼

跳轉(zhuǎn)到定義處:F12

定義處縮略圖:只看一眼而不跳轉(zhuǎn)過去Alt+F12

列出所有的引用:Shift+F12

同時修改本文件中所有匹配的:Ctrl+F12

重命名:比如要修改一個方法名密似,可以選中后按F2焙矛,輸入新的名字,回車残腌,會發(fā)現(xiàn)所有的文件都修改過了村斟。

跳轉(zhuǎn)到下一個Error或Warning:當有多個錯誤時可以按F8逐個跳轉(zhuǎn)

查看diff 在explorer里選擇文件右鍵?Set file to compare,然后需要對比的文件上右鍵選擇Compare with 'file_name_you_chose'.

查找替換

查找?Ctrl+F

查找替換?Ctrl+H

整個文件夾中查找?Ctrl+Shift+F

匹配符:

*?to match one or more characters in a path segment

??to match on one character in a path segment

**?to match any number of path segments ,including none

{}?to group conditions (e.g.?{**/*.html,**/*.txt}?matches all html and txt files)

[]?to declare a range of characters to match (e.g.,?example.[0-9]?to match on?example.0,example.1, …

顯示相關

全屏:F11

zoomIn/zoomOut:Ctrl + =/Ctrl + -

側邊欄顯/隱:Ctrl+B

側邊欄4大功能顯示:

Show Explorer?Ctrl+Shift+E

Show SearchCtrl+Shift+F

Show GitCtrl+Shift+G

Show DebugCtrl+Shift+D

Show OutputCtrl+Shift+U

預覽markdownCtrl+Shift+V

其他

自動保存:File -> AutoSave 抛猫,或者Ctrl+Shift+P蟆盹,輸入 auto

皮膚預覽

f1后輸入?theme?回車,然后上下鍵即可預覽

自定義settings.json

User settings?是全局設置闺金,任何vs Code打開的項目都會依此配置逾滥。

默認存儲在:

Windows:?%APPDATA%\Code\User\settings.json

Mac:?$HOME/Library/Application Support/Code/User/settings.json

Linux:?$HOME/.config/Code/User/settings.json

Workspace settings?是本工作區(qū)的設置,會覆蓋上邊的配置

存儲在工作區(qū)的.vocode文件夾下败匹。

幾乎所有設定都在settings.json里寨昙,包括

Editor Configuration - font, word wrapping, tab size, line numbers, indentation, ...

Window Configuration - restore folders, zoom level, ...

Files Configuration - excluded file filters, default encoding, trim trailing whitespace, ...

File Explorer Configuration - encoding, WORKING FILES behavior, ...

HTTP Configuration - proxy settings

Search Configuration - file exclude filters

Git Configuration - disable Git integration, auto fetch behavior

Telemetry Configuration - disable telemetry reporting, crash reporting

HTML Configuration - HTML format configuration

CSS Configuration - CSS linting configuration

JavaScript Configuration - Language specific settings

JSON Configuration - Schemas associated with certain JSON files

Markdown Preview Configuration - Add a custom CSS to the Markdown preview

Less Configuration - Control linting for Less

Sass Configuration - Control linting for Sass

TypeScript Configuration - Language specific settings

PHP Configuration - PHP linter configuration

例如可以修改讓vscode認識.glsl擴展名

{

? ? // Configure file associations to languages (e.g. "*.extension": "html"). These have precedence over the default associations of the languages installed.

? ? "files.associations": {

? ? ? ? "*.glsl": "shaderlab"

? ? }

}

修改默認快捷鍵

File -> Preferences -> Keyboard Shortcuts

修改keybindings.json,我的顯示在這里C:\Users\Administrator\AppData\Roaming\Code\User\keybindings.json

// Place your key bindings in this file to overwrite the defaults

[

? ? //ctrl+space被切換輸入法快捷鍵占用

? ? {

? ? ? ? "key": "ctrl+alt+space",

? ? ? ? "command": "editor.action.triggerSuggest",

? ? ? ? "when": "editorTextFocus"

? ? },

? ? // ctrl+d刪除一行

? ? {

? ? ? ? "key": "ctrl+d",

? ? ? ? "command": "editor.action.deleteLines",

? ? ? ? "when": "editorTextFocus"

? ? },

? ? {

? ? ? ? "key": "ctrl+shift+k", //與刪除一行的快捷鍵互換了:)

? ? ? ? "command": "editor.action.addSelectionToNextFindMatch",

? ? ? ? "when": "editorFocus"

? ? },

? ? //ctrl+shift+/多行注釋

? ? {

? ? ? ? "key":"ctrl+shift+/",

? ? ? ? "command": "editor.action.blockComment",

? ? ? ? "when": "editorTextFocus"

? ? }

]

自定義代碼段

然后輸入語言,例如我這里輸入?typescript

由于每次輸入箭頭函數(shù)() => {}太煩了哎壳,我這里加入一段加入一段

"arrow function": {

? ? ? ? "prefix": "func",

? ? ? ? "body": [

? ? ? ? ? ? "(${e}) => {$1}"

? ? ? ? ],

? ? ? ? "description": "arrow function"

? ? }

保存后毅待,下次輸入func的時候就會自動出來箭頭函數(shù)了

配置TypeScript環(huán)境

首先覆蓋默認ctrl + space快捷鍵,因為這個快捷鍵被輸入法切換占用了

C:\Users\Administrator\AppData\Roaming\Code\User\keybindings.json

加入

// Place your key bindings in this file to overwrite the defaults

[

{ "key": "ctrl+alt+space",? ? ? ? ? ? "command": "editor.action.triggerSuggest",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "when": "editorTextFocus" }

]

File - Open Folder 打開項目的目錄

創(chuàng)建?tsconfig.json

輸入{}?,在大括號中間?ctrl + alt + space?(上邊的自定義鍵盤)

輸入

{

"compilerOptions": {

? ? "target": "ES5",

? ? "module": "amd",

? ? "sourceMap": true

}

}

可以創(chuàng)建.ts文件了

配置TaskRunner?Ctrl+Shift+P?輸入?Configure Task Runner

Run Task?Ctrl+Shift+B

安裝typings

Install typings to bring in the .d.ts files which power javascript intellisense.

npm install typings --global

# Search for definitions.

typings search tape

# Find an available definition (by name).

typings search --name react

# Install typings (DT is "ambient", make sure to enable the flag and persist the selection in `typings.json`).

typings install react --ambient --save

install will create a typings folder. VS Code will reference the .d.ts files for intellisense.

插件

新版本支持插件安裝了

插件市場?https://marketplace.visualstudio.com/#VSCode

安裝插件

F1?輸入?extensions

點擊第一個開始安裝或升級归榕,或者也可以?Ctrl+P?輸入?ext install進入

點擊第二個會列出已經(jīng)安裝的擴展尸红,可以從中卸載

ext install

我在用的插件(期待更新...)

docthis 插件可以自動添加JSDoc注釋。

ctrl + p?后 輸入ext install docthis?可直接安裝。

安裝后連續(xù)兩次?Ctrl+Alt+D?即可在光標處插入注釋外里。

詳細:?https://marketplace.visualstudio.com/items?itemName=joelday.docthis

vscode-todo 顯示todo列表

ctrl + p?后 輸入ext install vscode-todo?可直接安裝怎爵。

詳細:?https://marketplace.visualstudio.com/items?itemName=MattiasPernhult.vscode-todo

參考:

Learning Visual Studio Code

Key Bindings for Visual Studio Code

VS Code Tips and Tricks

本文采用?署名-禁止演繹 4.0 國際許可協(xié)議 (CC BY-ND 4.0)?進行許可(保留鏈接可任意轉(zhuǎn)載,禁止修改)盅蝗。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鳖链,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子墩莫,更是在濱河造成了極大的恐慌芙委,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狂秦,死亡現(xiàn)場離奇詭異灌侣,居然都是意外死亡,警方通過查閱死者的電腦和手機裂问,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門侧啼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人堪簿,你說我怎么就攤上這事痊乾。” “怎么了椭更?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵哪审,是天一觀的道長。 經(jīng)常有香客問我甜孤,道長协饲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任缴川,我火速辦了婚禮茉稠,結果婚禮上,老公的妹妹穿的比我還像新娘把夸。我一直安慰自己而线,他們只是感情好,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布恋日。 她就那樣靜靜地躺著膀篮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪岂膳。 梳的紋絲不亂的頭發(fā)上誓竿,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音谈截,去河邊找鬼筷屡。 笑死涧偷,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的毙死。 我是一名探鬼主播燎潮,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼扼倘!你這毒婦竟也來了确封?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤再菊,失蹤者是張志新(化名)和其女友劉穎爪喘,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袄简,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡腥放,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年泛啸,在試婚紗的時候發(fā)現(xiàn)自己被綠了绿语。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡候址,死狀恐怖吕粹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情岗仑,我是刑警寧澤匹耕,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站荠雕,受9級特大地震影響稳其,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜炸卑,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一既鞠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盖文,春花似錦嘱蛋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疙驾,卻和暖如春凶伙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背它碎。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工函荣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留铣卡,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓偏竟,卻偏偏與公主長得像煮落,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子踊谋,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容