VSCode個(gè)人經(jīng)驗(yàn)

VSCode 個(gè)人使用經(jīng)驗(yàn)

Version 1.01

by Pixel Frame
遠(yuǎn)神恵賜

編輯器介紹

資源管理

VS Code自然是可以作為一個(gè)單純的文本編輯器,直接打開(kāi)文檔進(jìn)行編輯纵散。但其實(shí)要使用Debug捕儒、Git等功能,則還是要打開(kāi)一個(gè)文件夾龙致,即將該文件夾作為工作目錄蛀缝。這也就和IDE的工程類似的概念。在打開(kāi)文件夾后目代,左側(cè)的資源管理器就能很直觀的顯示目錄中的各種文件屈梁。在安裝插件后,更是能夠添加X(jué)ML分析榛了,Git歷史在讶,Commit對(duì)比等等的功能。

編碼/制表符/換行符

VS Code新建/打開(kāi)文件默認(rèn)采用UTF-8(無(wú)BOM)霜大,并不能自動(dòng)識(shí)別文檔的編碼构哺,需要修改可以在右下角選擇。但有一不方便的地方是即使修改過(guò)一次打開(kāi)的編碼战坤,下次打開(kāi)時(shí)依然會(huì)默認(rèn)UTF-8打開(kāi)遮婶,每次只能手動(dòng)修改。</br>
同理湖笨,VS Code默認(rèn)Tab鍵為4個(gè)(半角)空格旗扑,有一些編輯器的默認(rèn)Tab為2個(gè)空格〈仁。可以選擇使用制表符作為T(mén)ab鍵輸入以及更改Tab長(zhǎng)度臀防。同時(shí)也可以將文檔中現(xiàn)有的空格和制表符相互轉(zhuǎn)換,對(duì)縮進(jìn)格式十分嚴(yán)格的在下來(lái)說(shuō)這是十分實(shí)用的功能边败。</br>
作為最初在Windows上的編輯器袱衷,VS Code的默認(rèn)換行符自然是Windows/DOS的CRLF(回車換行)。自然笑窜,除非使用系統(tǒng)自帶的Notepad打開(kāi)文件或者是遠(yuǎn)古時(shí)期的編譯器致燥,大部分現(xiàn)代的文本編輯器都能正確識(shí)別CRLF和LF的文檔,其實(shí)不用過(guò)于糾結(jié)使用何種換行符排截。

設(shè)置

VS Code使用JSON進(jìn)行設(shè)置嫌蚤,熟悉JSON語(yǔ)法可以很快上手辐益。當(dāng)然,其實(shí)沒(méi)有接觸過(guò)JSON也能很容易地進(jìn)行設(shè)置脱吱,因?yàn)閂S Code已經(jīng)寫(xiě)好了詳細(xì)的中文注釋智政,其實(shí)需要修改的設(shè)置也并沒(méi)有那么多,大部分保持默認(rèn)即可箱蝠。其中续捂,字體方面在下比較推薦Consolas,VS Code支持設(shè)置多個(gè)字體宦搬,當(dāng)前一字體沒(méi)有某一字符時(shí)會(huì)自動(dòng)Fallback至下一字體牙瓢,所以可以如下設(shè)置Consolas + 思源黑體。當(dāng)然對(duì)「Courier New」「Lucida Console」「Source Code Pro / Source Han Code JP」有特別喜好的也可以設(shè)置间校。

"editor.fontFamily": "Consolas, 思源黑體 Regular"

等寬字體大多沒(méi)有中文字符集一罩,對(duì)于不支持多個(gè)字體的編輯器,比較好的選擇是Windows注冊(cè)表的fontlink撇簿∧粼ǎ或者是「Microsoft Yahei Mono」和「Inziu Iosevka」字體叶眉。Consolas的優(yōu)勢(shì)在于意大利體舆床,斜體下別有韻味鸭蛙,Microsoft Yahei Mono雖然是將Consolas和微軟雅黑拼合耕漱,但是并沒(méi)有Consolas的意大利體秤涩;而Inziu Iosevka則是僅有的中英文混排可以嚴(yán)格對(duì)齊的字體眷柔。</br>
安裝插件后辅甥,附加的設(shè)置選項(xiàng)會(huì)添加在默認(rèn)設(shè)置的下面(當(dāng)然可能就沒(méi)有注釋了)狡忙。按照插件頁(yè)面的說(shuō)明也能方便地進(jìn)行設(shè)置洗做。比如LaTeX Workshop建立XeLaTeX的輸出設(shè)置如下弓叛。

"latex-workshop.latex.toolchain": [
       {
           "command": "xelatex",
           "args": [
               "-synctex=1",
               "-interaction=nonstopmode",
               "-file-line-error",
               "%DOC%"
           ]
       }
   ]

另外,設(shè)置一個(gè)順眼的顏色主題和圖標(biāo)主題是十分重要的诚纸。在擴(kuò)展中可以搜索顏色主題和圖標(biāo)主題撰筷,比如著名的Monokai樣式。Monokai相比默認(rèn)的Visual Studio樣式畦徘,對(duì)各種關(guān)鍵詞的高亮要豐富得多毕籽,同時(shí)深色主題看著要比亮色主題舒服很多。GitHub樣式也是一個(gè)不錯(cuò)的主題井辆。而圖標(biāo)主題Material樣式風(fēng)格統(tǒng)一关筒,覆蓋的文件類型也比較全面。值得一提的是Visual Basic Script(.vbs)格式幾乎沒(méi)有被任何一個(gè)圖標(biāo)主題包含杯缺,畢竟PowerShell已經(jīng)能完全取代任何的Windows Shell了吧蒸播。

快捷鍵

眾所周知,快捷鍵是一個(gè)文本編輯器是否高端的標(biāo)識(shí)萍肆。VS Code可以通過(guò)擴(kuò)展支持Vim, Sublime等編輯器的快捷鍵袍榆。</br>
話雖如此胀屿,像在下這么懶的人是不會(huì)去記Vim的快捷鍵的。VS Code默認(rèn)基本使用的快捷鍵和大多數(shù)微軟軟件相同蜡塌,即

  • Ctrl + C | Ctrl + C | Ctrl + V ····· 復(fù)制 | 剪切 | 粘貼
  • Ctrl + Z | Ctrl + Y ············· 撤銷 | 恢復(fù)
  • Ctrl + F | Ctrl + H ············· 搜索 | 替換
  • Ctrl + W ···················· 關(guān)閉標(biāo)簽頁(yè)

等碉纳。而生成調(diào)試的快捷鍵則與Visual Studio一直勿负,即

  • F5 ········· 調(diào)試啟動(dòng)
  • Ctrl + F5 ···· 非調(diào)試啟動(dòng)
  • F9 ········· 設(shè)置斷點(diǎn)
  • F10 ········ 單步跳過(guò)
  • F11 ········ 單步執(zhí)行

等馏艾。VS Code專屬的快捷鍵有可打印的清單,多加使用記憶并不困難奴愉。所有命令可以通過(guò)Ctrl + Shift + P喚出琅摩,包括擴(kuò)展插件的命令。而設(shè)置相關(guān)則有兩步快捷鍵锭硼,先按下Ctrl + K再按下其他Ctrl組合鍵完成房资。

Git & GitHub

首先需要安裝Git程序。然后就可以在擴(kuò)展中安裝各種各樣的Git插件了檀头。如Git History, Git Blame, Git Lens等等轰异。</br>
要Push至GitHub,自然要先與遠(yuǎn)程Repository建立關(guān)聯(lián)暑始,建議還是使用Git GUI完成比較方便搭独,自然技術(shù)過(guò)硬可以直接使用VS Code的控制臺(tái)完成。之后就能在源代碼管理界面完成Commit, Pull, Push, Merge等等操作了廊镜。裝有插件自然還能可視化Git歷史牙肝,進(jìn)一步方便管理。

Debug

在打開(kāi)文件夾狀態(tài)下嗤朴,就可以添加Debug配置配椭。配置合理起見(jiàn),為每個(gè)工程添加獨(dú)立Debug配置是比較好的雹姊。但也可以在一個(gè)文件夾下放置所有的Debug配置股缸。</br>
點(diǎn)擊添加配置就能建立新的launch.json,有技術(shù)的話自然可以自己來(lái)寫(xiě)debug配置吱雏,到網(wǎng)上找一下別人寫(xiě)好的配置也是沒(méi)有問(wèn)題的乓序。下面會(huì)在C/C++插件中詳細(xì)介紹如何配置GDB。

擴(kuò)展

C/C++

以MinGW的GCC編譯器為例坎背。安裝后需要手動(dòng)在系統(tǒng)環(huán)境變量PATH中添加MinGW的bin路徑替劈,由于PowerShell對(duì)環(huán)境變量更新問(wèn)題,最好重啟一次得滤。然后就能在VS Code中添加g++生成任務(wù)和Debug配置了陨献。</br>
首先在菜單中配置新任務(wù),任務(wù)其實(shí)就是運(yùn)行一個(gè)程序或在Shell執(zhí)行指令懂更,同樣是JSON格式眨业。示例g++生成任務(wù)如下急膀,g++/gcc的參數(shù)自行參考gcc文檔。當(dāng)然也可以使用Clang龄捡,相比之下gcc的編譯錯(cuò)誤信息實(shí)在是麻煩卓嫂。Windows平臺(tái)完整的Visual Studio 2017自然是無(wú)敵的~

"version": "2.0.0",
"tasks": [
  {
      "taskName": "g++",
      "command": "g++",       //執(zhí)行的編譯器文件g++.exe
      "args": [           //g++的編譯參數(shù)
           "-g", 
           "${file}", 
           "-o",
           "${fileDirname}/${fileBasenameNoExtension}.exe",
           "-Og",
           "-static-libgcc", 
           "-static-libstdc++", 
           "-Wall"
       ],
       "type": "shell",       //在Shell中執(zhí)行,默認(rèn)作為進(jìn)程執(zhí)行
       "group": {     //執(zhí)行組為生成組聘殖,且為默認(rèn)
           "kind": "build",
           "isDefault": true
       },
       "presentation": {  //在輸出面板顯示
           "echo": true,
           "reveal": "always",
            "focus": false,
            "panel": "shared"
       },
       "problemMatcher": {    //錯(cuò)誤信息顯示
           "owner": "cpp",
           "fileLocation": ["relative", "${worksapceRoot}"],
           "pattern": {
               "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", //正則匹配
               "file": 1,
               "line": 2,
               "column": 3,
               "severity": 4,
               "message": 5
           }
       }
   }
]

生成exe后晨雳,就能執(zhí)行g(shù)db來(lái)進(jìn)行debug了。配置如下:

{
   "name": "C++ Launch (GDB)",
   "type": "cppdbg",
   "request": "launch",
   "targetArchitecture": "x86",
   "program": "${fileDirname}/${fileBasenameNoExtension}.exe",    //被debug程序
   "miDebuggerPath": "C:/MinGW/bin/gdb.exe",  //gdb路徑
   "args": [                      //給gdb的參數(shù)
   ],
   "stopAtEntry": false,
   "cwd": "${workspaceRoot}",     //被debug程序的工作路徑
   "externalConsole": true,       //調(diào)用外部控制臺(tái)
   "preLaunchTask": "g++"         //先執(zhí)行g(shù)++任務(wù)生成exe
},

LaTeX Workshop

首先需要安裝TeX發(fā)行版奸腺,推薦TeX Live餐禁,CTeX目前已經(jīng)很久沒(méi)有更新了。對(duì)于TeX的各種配置突照,如pdfLaTeX, BibLaTeX, XeLaTeX以及CJK中文字體等的問(wèn)題屬于TeX知識(shí)帮非,在這里就不說(shuō)了。對(duì)于基本使用讹蘑,只要選擇一個(gè)滿足自己需求的包即可末盔,使用XeLaTeX可以參考上文中的設(shè)置。在TeX發(fā)行版中安裝了chktex還可以打開(kāi)語(yǔ)法檢查功能座慰。

Markdown Preview Enhanced

相較于其他Markdown預(yù)覽插件陨舱,Markdown Preview Enhanced(MPE)擁有對(duì)MathJax/KeTeX的支持,能夠在預(yù)覽中顯示LaTeX公式(雖然沒(méi)有真正的LaTeX那么美觀)角骤∮绶蓿可以自定義CSS樣式,使輸出的Markdown文件更加個(gè)性化邦尊。并且自帶了輸出為HTML, pdf等多種格式的功能背桐。當(dāng)然輸出pdf等格式需要安裝PhantomJS或PrinceXML等軟件,裝有Acrobat或者其他pdf創(chuàng)建軟件也可以從HTML創(chuàng)建pdf文檔蝉揍。</br>
不太建議安裝markdownlint插件檢查語(yǔ)法链峭,因?yàn)楦鱾€(gè)Markdown插件間的語(yǔ)法解釋都略有不同。比如對(duì)于換行又沾,大多數(shù)Markdown插件都需要手動(dòng)在段尾添加</br>才能換行弊仪,但MPE就能自動(dòng)換行。
$\mathrm{\LaTeX}$示例:
$$
\oint_c \vec{H} \cdot \mathrmvhp1rlr \vec{l} = \int_s \left( \vec{J_c} + \vec{J_v} +\frac{\partial\vec{D}} {\partial t} \right) \cdot \mathrmqg1mbkc \vec{s}
$$

$$
\displaystyle\oint_c \vec{E} \cdot \mathrm7bhvluf \vec{l} =
-\int_s \frac{\partial\vec{B}}{\partial t} \cdot \vec{s}
$$

$$
\oint_s \vec{D} \cdot \mathrmhzfnm7p \vec{s} =
\int_V \rho \mathrmvlfzhs1 V
$$

$$
\oint_s \vec{B} \cdot \mathrmbrxfziu \vec{s} = 0
$$

$$
\nabla \times \vec{H} = \vec{J} + \frac{\partial\vec{D}}{\partial t}
$$

$$
\nabla \times \vec{E} = -\frac{\partial\vec{B}}{\partial t}
$$

$$
\nabla \cdot \vec{D} = \rho
$$

$$
\nabla \cdot \vec{B} = 0
$$

Auto-Open Markdown Preview

相比MPE更為輕便杖刷,自帶的樣式也比較美觀励饵,不需要自己來(lái)寫(xiě)CSS。自動(dòng)彈出挺方便滑燃,但有的時(shí)候不想預(yù)覽的時(shí)候也挺煩的役听。在語(yǔ)法上和MPE有部分區(qū)別,建議采用最為穩(wěn)妥的語(yǔ)法規(guī)則,避免問(wèn)題典予。

#待續(xù) To be Continued

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末甜滨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瘤袖,更是在濱河造成了極大的恐慌衣摩,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捂敌,死亡現(xiàn)場(chǎng)離奇詭異艾扮,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)黍匾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)栏渺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)呛梆,“玉大人锐涯,你說(shuō)我怎么就攤上這事√钗铮” “怎么了纹腌?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)滞磺。 經(jīng)常有香客問(wèn)我升薯,道長(zhǎng),這世上最難降的妖魔是什么击困? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任涎劈,我火速辦了婚禮,結(jié)果婚禮上阅茶,老公的妹妹穿的比我還像新娘蛛枚。我一直安慰自己,他們只是感情好脸哀,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布蹦浦。 她就那樣靜靜地躺著,像睡著了一般撞蜂。 火紅的嫁衣襯著肌膚如雪盲镶。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,713評(píng)論 1 312
  • 那天蝌诡,我揣著相機(jī)與錄音溉贿,去河邊找鬼。 笑死浦旱,一個(gè)胖子當(dāng)著我的面吹牛宇色,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼代兵,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼尼酿!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起植影,我...
    開(kāi)封第一講書(shū)人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤裳擎,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后思币,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體鹿响,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年谷饿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了惶我。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡博投,死狀恐怖绸贡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情毅哗,我是刑警寧澤听怕,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站虑绵,受9級(jí)特大地震影響尿瞭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜翅睛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一声搁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧捕发,春花似錦疏旨、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至霞玄,卻和暖如春骤铃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坷剧。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工惰爬, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惫企。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓撕瞧,卻偏偏與公主長(zhǎng)得像陵叽,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子丛版,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

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