19.05.03 Update Vscode 配置攻略(都是血和淚換來的)
上一篇講了很多 Mac 中配置的小技巧如何給碼農(nóng) ?????? 的 Mac 開光
時隔半年衔蹲,再來詐尸更新一下開光 ?? 系列拙友。
每次當(dāng)我們看到 dalaos 寫的教程時候,雖然一條條都列的很詳細(xì)了埃撵,但實際操作起來還是困難重重雇寇。
有沒有一種更舒適的方式讓我們更容易的獲得教程中所搭建的環(huán)境氢拥。
對于博主來說,除了上述原因之外锨侯,主要是遇到一個很現(xiàn)實的問題嫩海,
一開始你可能只是一個實驗室的小磚工
你手上的機(jī)子可能還是要去排隊才能輪的上的沒有可以持久使用的機(jī)子,肯定不會去想要不要給服務(wù)器配一下 zsh囚痴,讓大家登機(jī)子上去好用一點
(這個業(yè)務(wù)場景不考慮做一些內(nèi)部使用的系統(tǒng)叁怪,提升用戶體驗,不存在的)直到有一天
(當(dāng)然這一天很可能不存在)深滚,大老板 看你骨骼清奇奕谭,說給你 5 張 V100 用一下你喜出望外涣觉,一臉色瞇瞇,等想著自己是不是要給服務(wù)器整一套好用的環(huán)境
但是 一個星期過去了血柳,你發(fā)現(xiàn)你還在配環(huán)境(當(dāng)然 周報有東西寫 是好事情 hhh)
有時候官册,一件事做幾次可能會挺有收獲的,但一旦重復(fù)次數(shù)多了难捌,只剩下厭倦了膝宁。
而作為一個 zsh 深度用戶,在白板 linux 上敲命令總感覺少了些什么
zsh.sh
就是為了解決這個問題根吁,也為了方便新手能容易的配置之前教程中說明的環(huán)境
- 如果你手上有一些機(jī)器员淫,或者正準(zhǔn)備遷移自己的服務(wù)器
- 如果你苦于繁瑣的配置過程,害怕配置中遇到 bug
- 如果你不喜歡白板 shell 界面击敌,習(xí)慣于 zsh 環(huán)境
歡迎使用zsh.sh
- 目前支持
Ubuntu
,CentOS
,MacOSX
三個發(fā)行版 - 支持
amb64(64bit)
&i386 (32bit)
- 支持
Docker
部署介返,Ubuntu, Ubuntu32, CentOS 三個版本 - 目前 zsh.sh 中包含 oh-my-zsh,fzf,vimrc 三塊的配置
在使用過程中,肯定會有一些小困難沃斤,歡迎在 issue 或者評論區(qū)跟我交流映皆。??
個人感覺使用起來,還是蠻爽的轰枝。科技解放生產(chǎn)力~
Vscode
VSCode 真香
VSCode 真香
VSCode 真香
hhh 之前我一直是 Sublime 布道者组去,VSCode 黑
直到最近鞍陨,主力 IDE 已經(jīng)變成 VSCode 了
特別是最近 VSCode 正式發(fā)布vscode-remote
第一眼 看到的時候 震驚了!4勇 诚撵!
這意味著以后你可以在服務(wù)器上用 VSCode 寫代碼,這還要什么coder-server
先鞭尸一下 coder-server, 相較于 vscode-remote:
- coder-server, 橫向擴(kuò)展性差键闺,必須在相應(yīng)的服務(wù)器上部署 coder-server
- 配置麻煩寿烟,我們本地 local 的 VSCode 肯定會花大力氣配置,但如果有 n 臺服務(wù)器呢辛燥,你還會這么做嗎(寫個腳本筛武,不好意思,這個有點難寫)
- 所以一開始看到 code-server 的時候沒有那么驚喜挎塌,(流露出配過環(huán)境的人的眼淚 ??
試驗下來超級順滑徘六,除了現(xiàn)在 vscode-remote 只支持 64bit 的 Linux 這一點,其他都很絲滑(Nachos 還是不能用 hhh
除了支持 ssh 連接之外榴都,還支持 Docker Container 的連接待锈,超級棒了
但 vscode-remote 目前出于公測階段,只能在綠色的 VSCode Insider 中使用嘴高,而且功能還待完善
給我個理由
那么作為一個忠實的 Sublime 用戶竿音,為何會從 Sublime 遷移到 VSCode 來
當(dāng)時覺得 Sublime 有幾點特別吸引我:
- 好看
- 輕量
- 可配置實現(xiàn) ide 喚起編譯運行
- 保存時自動調(diào)整代碼格式
- 寫 cpp 的時候模板用起來特別爽
- 可以設(shè)置帶有 File Header
而這些 我都在 VSCode 中一個個實現(xiàn)了
因為 之前配置的 Vscode 裝插件裝的特別多 在代碼量特別大的時候(7k-8k 行)和屎,code help 進(jìn)程就會打滿,整個機(jī)子就會石樂志一樣
再加上 vscode-remote 只支持 Insider 版春瞬,就順道把配置理了一下
Save Format
這里用到的是Formatting Toggle
+ Prettier
這個插件柴信,支持的文件類型還是比較多的,比如給 markdown 表格自動格式化快鱼,這還是挺酷炫的
{
"formattingToggle.activateFor": ["formatOnSave"],
"editor.formatOnSave": true,
"files.autoSave": "onFocusChange"
}
File Header
這個用了psioniq File Header
, 文檔還是比較詳細(xì)的颠印,但配置十分繁瑣,弄了好長時間抹竹,還給作者發(fā)郵件线罕,hhh
{
"psi-header.changes-tracking": {
"autoHeader": "autoSave",
"isActive": true,
"modDate": "@Last Modified time: ",
"modAuthor": "@Last Modified by: ",
"include": [],
"exclude": ["markdown", "json"],
"excludeGlob": ["out/**", "src/**/*.xyz"]
},
"psi-header.config": {
"forceToTop": true,
"blankLinesAfter": 1,
"author": "gunjianpan",
"authorEmail": "gunjianpan@pku.edu.cn",
"license": "Custom"
},
"psi-header.lang-config": [
{
"language": "python",
"begin": "",
"prefix": "# ",
"end": "",
"beforeHeader": ["# -*- coding: utf-8 -*-"]
},
{
"language": "shellscript",
"begin": "",
"prefix": "# ",
"end": "",
"beforeHeader": ["#!/bin/bash"]
},
{
"language": "javascript",
"begin": "/**",
"prefix": " * ",
"end": " */",
"blankLinesAfter": 2,
"forceToTop": false
},
{
"language": "typescript",
"mapTo": "javascript"
}
],
"psi-header.templates": [
{
"language": "*",
"template": [
"@Author: <<author>>",
"@Date: <<filecreated('YYYY-MM-DD HH:mm:ss')>>",
"@Last Modified by: <<author>>",
"@Last Modified time: <<dateformat('YYYY-MM-DD HH:mm:ss')>>"
]
}
]
}
代碼編譯運行
雖然提供了在 Output 中輸出運行結(jié)果的插件Code Runner
但很多場景是需要交互式的,(比如說刷 leetcode ????
這個時候 就需要配置一下
{
"code-runner.executorMap": {
"javascript": "node",
"perl": "perl",
"go": "go run",
"python": "ipython3",
"java": "cd $dir && javac $fileName && /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/java '-javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=60957:/Applications/IntelliJ IDEA.app/Contents/bin' -Dfile.encoding=UTF-8 -classpath $dir $fileNameWithoutExt",
"c": "cd $dir && /usr/bin/gcc $fileName -o $fileNameWithoutExt && open -a Terminal.app $dir$fileNameWithoutExt",
"cpp": "cd $dir && /usr/bin/g++ -std=c++11 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
}
}
能像 Intellij IDEA 一樣能查 local History
{
"local-history.daysLimit": 30,
"local-history.maxDisplay": 16,
"local-history.saveDelay": 0,
"local-history.dateLocale": "en-GB",
"local-history.exclude": [
"**/.history/**",
"**/.vscode**",
"**/node_modules/**",
"**/typings/**",
"**/out/**",
"**/__pycache__/**",
"**/.ipynb_checkpoints/**",
"**/data/**",
"**/.DS_Store/**",
"**/checkpoint/**"
]
}
Live Share
然后比較推薦的時候 Vscode 的 Live Share, 這是我隊友給我推薦的
你可以用 Live share 多人寫代碼窃判,也可以用來作為遠(yuǎn)程 Terminal 幫忙調(diào)試的媒介
一鍵召喚神龍
Latex
Vscode 畢竟是宇宙第一操作系統(tǒng)钞楼, 在上面敲 Latex 也是很爽的,配上 Latex 公式神器Mathpix snipping Tool
Other
- Monokai Pro, Theme
- sort lines, import sort
- polacode, 代碼圖片生成