京寵展信息指南
1525
2022-05-30
文章目錄
安裝
一、創(chuàng)建vscode工程
二、過(guò)濾文件
三、插件安裝
四、實(shí)際工程問(wèn)題解決
4.1、解決工作區(qū)過(guò)大問(wèn)題
方法一:減少冗余文件顯示
方法二:適當(dāng)增大文件監(jiān)控?cái)?shù)目
4.2、解決每次只能打開(kāi)一個(gè)文件的問(wèn)題
4.3、中英文切換問(wèn)題
4.4、指定頭文件路徑問(wèn)題
4.5、Unable to active xxxx 問(wèn)題
4.6、鼠標(biāo)中鍵無(wú)意添加剪切板代碼塊,造成后期定位困難的問(wèn)題
4.7、vscode中的搜索問(wèn)題
五、常用的VScode快捷鍵
參考
安裝
ubuntu 下的 VScode 安裝:
wget https://vscode.cdn.azure.cn/stable/c3f126316369cd610563c75b1b1725e0679adfb3/code_1.58.2-1626302803_amd64.deb sudo dpkg -i code_1.58.2-1626302803_amd64.deb
1
2
在終端輸入code,即可打開(kāi)vscode。
一、創(chuàng)建vscode工程
打開(kāi) VScode,選擇:文件->打開(kāi)文件夾…,選中 vsdk@ycc 文件夾,如下圖所示:
打開(kāi) vsdk@ycc 目錄以后, VSCode 界面如下圖所示:
點(diǎn)擊“文件->將工作區(qū)另存為…”,打開(kāi)保存工作區(qū)對(duì)話框,將工作區(qū)保存到 vsdk@ycc 源碼根目錄下,設(shè)置文件名為“vsdk”,如下圖所示:
保存成功以后就會(huì)在 vsdk@ycc 源碼根目錄下存在一個(gè)名為 vsdk.code-workspace 的文件。這樣一個(gè)完整的 VSCode 工程就建立起來(lái)了。
下次可直接雙擊vsdk.code-workspace打開(kāi)源碼目錄(當(dāng)然前提,.code-workspace后綴文件默認(rèn)用vscode打開(kāi))
二、過(guò)濾文件
VSCode 工程包含了 vsdk 的所有文件, vsdk 中有些文件是不需要在VSCode顯示以及在搜素結(jié)果中顯示 ,需要將其從 VSCode 目錄中給屏蔽掉以及從搜素結(jié)果中給屏蔽掉。方法如下:
編輯vsdk.code-workspace文件的"settings"選項(xiàng),即可實(shí)現(xiàn)上述文件過(guò)濾的目的:
示例內(nèi)容如下:
{ "folders": [ { "path": "." } ], "settings": { //屏蔽搜索文件或文件夾 "search.exclude": { }, //屏蔽工程中文件或文件夾 "files.exclude": { }, } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
其中"search.exclude"里面是需要在搜索結(jié)果中排除的文件或者文件夾, "files.exclude"是左側(cè)工程目錄中需要排除的文件或者文件夾。
舉例來(lái)說(shuō),在vsdk@ycc中全局搜索CaptureLink_CreateParams_Init函數(shù),搜索結(jié)果除了出現(xiàn)在.c 和 .h 中還會(huì)出現(xiàn)在 .sem4后綴的文件中,造成搜素結(jié)果冗余,不容易快速定位函數(shù),這種情況下,我們就可以通過(guò)設(shè)置 settings.json 來(lái)過(guò)濾掉 .sem4文件。
若我們需要將 .sem4 文件從搜索結(jié)果和左側(cè)的工程目錄中都排除掉,因此在"search.exclude"和"files.exclude"中輸入如下圖所示內(nèi)容:
此時(shí)再看一下左側(cè)的工程目錄,發(fā)現(xiàn) arch 目錄下沒(méi)有 .sem4 這個(gè)文件了,同時(shí)再次搜索CaptureLink_CreateParams_Init函數(shù),也看不到.sem4后綴的文件了。說(shuō)明該文件確實(shí)被排除掉了。
"**/*.sem4": true,,冒號(hào)前面的是要排除的文件或者文件夾,冒號(hào)后面為是否將文件排除, true 表示排除, false 表示不排除。用這種方法即可將不需要的文件,或者文件夾排除掉。
在篩選時(shí),可以合理利用通配符“*”,比如“**/*.o”表示所有.o 結(jié)尾的文件。“configs/[a-l]*”表示 configs 目錄下所有以‘a(chǎn)’ ~ ‘l’開(kāi)頭的文件或者文件夾。 比如“configs/M[0-9]*”表示 configs 目錄下所有以‘Ma’ ~ ‘Ml’開(kāi)頭的文件或者文件夾。
我目前設(shè)置的vsdk過(guò)濾選項(xiàng)如下(持續(xù)更新…):
{ "folders": [ { "path": "." } ], "settings": { //屏蔽搜索文件或文件夾 "search.exclude": { "**/*.sem4": true, "**/*.map": true, }, //屏蔽工程中文件或文件夾 "files.exclude": { "**/*.sem4": true, "**/*.map": true, }, } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
三、插件安裝
VSCode 支持多種語(yǔ)言, 比如 C/C++、 Python、 C#等等,本教程我們主要用來(lái)編寫 C/C++程序的,所以需要安裝 C/C++的擴(kuò)展包,擴(kuò)展包安裝很簡(jiǎn)單,如下圖所示:
我們需要按照的插件有下面幾個(gè):
C/C++,這個(gè)肯定是必須的。 C/C++ Snippets,即 C/C++重用代碼塊。 C/C++ Advanced Lint,即 C/C++靜態(tài)檢測(cè) 。 Code Runner,即代碼運(yùn)行。 Include AutoComplete,即自動(dòng)頭文件包含。 Rainbow Brackets,彩虹花括號(hào),有助于閱讀代碼。 One Dark Pro, VSCode 的主題。 GBKtoUTF8,將 GBK 轉(zhuǎn)換為 UTF8。 ARM,即支持 ARM 匯編語(yǔ)法高亮顯示。 Chinese(Simplified),即中文環(huán)境。 vscode-icons, VSCode 圖標(biāo)插件,主要是資源管理器下各個(gè)文件夾的圖標(biāo)。 compareit,比較插件,可以用于比較兩個(gè)文件的差異。 DeviceTree,設(shè)備樹(shù)語(yǔ)法插件。 TabNine,一款 AI 自動(dòng)補(bǔ)全插件,強(qiáng)烈推薦,誰(shuí)用誰(shuí)知道!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
如果要查看已經(jīng)安裝好的插件,可以按照下圖所示方法查看:
四、實(shí)際工程問(wèn)題解決
4.1、解決工作區(qū)過(guò)大問(wèn)題
當(dāng)過(guò)程過(guò)大時(shí),vscode常常會(huì)提示,如下圖所示內(nèi)容:
上述內(nèi)容的大意是指,目前文件監(jiān)控的實(shí)際數(shù)目已超出當(dāng)前設(shè)置值。可以通過(guò)修改配置文件的方式,增加文件監(jiān)控?cái)?shù)目,來(lái)避免出現(xiàn)警告信息。524288是可設(shè)置的最大文件監(jiān)控?cái)?shù)目,一般情況下不應(yīng)當(dāng)設(shè)置這么大的值,因?yàn)槊勘O(jiān)控一個(gè)文件大約會(huì)消耗540字節(jié)(32位機(jī))或1kB(64位機(jī))的內(nèi)存,監(jiān)控524288個(gè)文件則大約會(huì)消耗256MB(32位機(jī))或512MB(64位機(jī))的內(nèi)存。
優(yōu)化該問(wèn)題的解決辦法:
方法一:減少冗余文件顯示
即本文第二節(jié)中的《文件過(guò)濾》
方法二:適當(dāng)增大文件監(jiān)控?cái)?shù)目
①、檢查現(xiàn)有文件監(jiān)控?cái)?shù)目
cat /proc/sys/fs/inotify/max_user_watches
1
上述命令在我的機(jī)器上顯示的結(jié)果是:8192,這是Ubuntu 16.04系統(tǒng)的默認(rèn)值。
②、修改文件監(jiān)控?cái)?shù)目
綜合考慮實(shí)際需監(jiān)控文件的數(shù)目和內(nèi)存消耗情況,我將新的文件監(jiān)控?cái)?shù)目設(shè)置為:81920,即原來(lái)監(jiān)控?cái)?shù)目的10倍。我使用vi對(duì)配置文件進(jìn)行編輯:
sudo vi /etc/sysctl.conf
1
在該配置文件的最后一行加上下述語(yǔ)句:
fs.inotify.max_user_watches=81920
1
③、讓配置文件中的新文件監(jiān)控?cái)?shù)目生效
sudo sysctl -p
1
重新打開(kāi)VSCode,只要當(dāng)前文件夾內(nèi)文件數(shù)目不超過(guò)81920個(gè),就不會(huì)再出現(xiàn)警告信息了。
4.2、解決每次只能打開(kāi)一個(gè)文件的問(wèn)題
在 VScode 上打開(kāi)一個(gè)新文件的話會(huì)覆蓋掉以前的文件,這是因?yàn)?VSCode 默認(rèn)開(kāi)啟了預(yù)覽模式,預(yù)覽模式下單擊左側(cè)的文件就會(huì)覆蓋掉當(dāng)前的打開(kāi)的文件。如果不想覆蓋的話采用雙擊打開(kāi)即可,或者設(shè)置 VSCode 關(guān)閉預(yù)覽模式,設(shè)置如下圖所示:
4.3、中英文切換問(wèn)題
前提是安裝好中文插件,按下“Ctrl+P”打開(kāi)搜索框,在搜索框里面輸入“>config”,然后選擇“Configure Display Language”,
接著選擇zh-ch即為中文
4.4、指定頭文件路徑問(wèn)題
按下“Ctrl+P”打開(kāi)搜索框,然后輸入“>Edit configurations”,選擇“C/C++:Edit configurations…”,如下圖所示:
C/C++的配置文件是個(gè) json 文件,名為: c_cpp_properties.json,此文件默認(rèn)內(nèi)容如下圖所示
c_cpp_properties.json 中的變量“includePath”用于指定工程中的頭文件路徑。
4.5、Unable to active xxxx 問(wèn)題
這是因?yàn)椴寮?C/C++ Lint 打開(kāi)了幾個(gè)功能,我們將其關(guān)閉就可以了,順便也可以學(xué)習(xí)一下VSCode 插件配置方法。
在 C/C++ Lint 配置界面上找到 CLang:Enable、 Cppcheck:Enable、 Flexlint:Enable 這個(gè)三個(gè),
然后取消掉勾選即可,如下圖所示:
4.6、鼠標(biāo)中鍵無(wú)意添加剪切板代碼塊,造成后期定位困難的問(wèn)題
禁用中鍵
xmodmap -e "pointer = 1 25 3 4 5 6 7 2"
1
取消禁用
xmodmap -e "pointer = 1 2 3 4 5 6 7 8"
1
當(dāng)然上述在終端的操作,僅對(duì)本次開(kāi)機(jī)有效,若想每次開(kāi)機(jī)均有效,可在/etc/rc.local腳本中添加
sudo vi /etc/rc.local
1
然后在 exit 0 前面添加“禁用中鍵”的腳本代碼,如下圖所示
4.7、vscode中的搜索問(wèn)題
搜索當(dāng)前文件中的某個(gè)變量
按下ctrl+F快捷鍵,輸入變量即可搜索
搜索工作區(qū)的含有某個(gè)變量的所有文件
在左側(cè)搜索欄
搜索某個(gè)特定的文件名
按下ctrl+P快捷鍵,輸入文件名即可搜索!
打開(kāi)對(duì)應(yīng)源碼的符號(hào)列表和函數(shù)列表
按下 shift+ctrl+o 快捷鍵
ctrl+鼠標(biāo)左鍵跳轉(zhuǎn)到函數(shù)定義后,如何回到原來(lái)的地方?
按鍵alt + ←快捷鍵
五、常用的VScode快捷鍵
上下滾動(dòng)頁(yè)面:ctrl+↑ / ↓
移動(dòng)某一行:Alt+ ↑ / ↓
復(fù)制某一行:Shift+Alt + ↓ / ↑
刪除某一行:Ctrl+Shift+K
跳轉(zhuǎn)到相應(yīng)的匹配括號(hào):Ctrl+Shift+\
折疊/展開(kāi)代碼片:ctrl+shift+[和ctrl+shift+]
快速注釋和取消注釋:ctrl+/
查找的快捷鍵:ctrl+F
選中下一行相同的關(guān)鍵詞:ctrl+D
選中所有相同的關(guān)鍵詞:ctrl+F2
選中光標(biāo)所在行:ctrl + I
分屏快捷鍵:ctrl + |
查找并更改所有的匹配項(xiàng):先ctrl+F,而后Alt+Enter;其實(shí)還有ctrl+H可以直接實(shí)現(xiàn)查找并替換
切換分支:ctrl+tab
翻轉(zhuǎn)屏幕:ctrl+alt +↑/↓/←/→
參考
VScode 官方使用文檔
C++
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。