VSCode批量代码比较
前言
最近因?yàn)楣ぷ髟?#xff0c;需要找出一個工程里面修改過的地方。VSCode里自帶代碼比較功能,可以高亮代碼不同的地方。然而手動一個個打開文件來比較顯然非常的繁瑣,在網(wǎng)上檢索后發(fā)現(xiàn)并沒有相關(guān)的方法。因此,為了解決這個問題,在查閱了官方文檔后,決定分享這個方法。
查閱文檔
在The Visual Studio Code command-line interface中,有-d指令,可以打開差異編輯器(代碼比較),需要輸入兩個文件夾的參數(shù)。
| -h?or?--help | Print usage |
| -v?or?--version | Print VS Code version (for example, 1.22.2), GitHub commit ID, and architecture (for example, x64). |
| -n?or?--new-window | Opens a new session of VS Code instead of restoring the previous session (default). |
| -r?or?--reuse-window | Forces opening a file or folder in the last active window. |
| -g?or?--goto | When used with?file:line{:character}, opens a file at a specific line and optional character position. This argument is provided since some operating systems permit?:?in a file name. |
| -d?or?--diff <file1> <file2> | Open a file difference editor. Requires two file paths as arguments. |
| -m?or?--merge <path1> <path2> <base> <result> | Perform a three-way merge by providing paths for two modified versions of a file, the common origin of both modified versions, and the output file to save merge results. |
| -w?or?--wait | Wait for the files to be closed before returning. |
| --locale <locale> | Set the?display language?(locale) for the VS Code session. (for example,?en-US?or?zh-TW) |
因此,通過在VScode終端(或用win+R,輸入CMD,用cd指令進(jìn)入需要比較的文件夾)例如:
code . -d 目標(biāo)文件1路徑 目標(biāo)文件2路徑 cd 目標(biāo)文件目錄 code . -d 目標(biāo)文件1路徑 目標(biāo)文件2路徑可以用CMD來進(jìn)行操作意味著:通過編寫bat批處理命令文件即可實(shí)現(xiàn)一鍵打開所有需要比較的代碼。?
是
以我在桌面創(chuàng)建的compare文件夾為例,compare文件夾中包含了proj1和proj2文件夾,分別代表著修改前和修改后的工程文件,現(xiàn)在我們要找出哪些代碼發(fā)生了變化:
?在下方終端輸入
code . -d .\proj1\main.c .\proj2\main.c?然后編輯器便打開了這兩個文件的差異比較器,可以看到兩個代碼第六行有區(qū)別和變動。
?通過依次輸入下列的命令,即可以打開所有需要比對的文件:
code . -d .\proj1\main.c .\proj2\main.c code . -d .\proj1\module1.c .\proj2\module1.c code . -d .\proj1\module2.c .\proj2\module2.c code . -d .\proj1\module3.c .\proj2\module3.c code . -d .\proj1\lib.h .\proj2\lib.h?但索性這里的文件比較少,如果是一個比較大的工程,文件到達(dá)兩位數(shù)時,手動輸入這些代碼也非常耗時耗力。這里推薦通過python來實(shí)現(xiàn)列出文件夾中的列表,并輸出需要的指令(這里python文件創(chuàng)建在compare目錄下,".\"可以指向當(dāng)前所在目錄)。
import os temp='' filelist = os.listdir('.\\proj1') for sv in filelist:#通過該判斷篩選掉需要讀取的文件if(sv.find(".c")>0):#通過該判斷篩選不需要讀取的文件if(sv.find("h")<0):if(temp!=''):temp+='&'temp+="code . -d .\\proj1\\"+sv+" .\\proj1\\"+sv print(temp)運(yùn)行改代碼后,成功導(dǎo)出了以下字符串?
code . -d .\proj1\main.c .\proj2\main.c&code . -d .\proj1\module1.c .\proj2\module1.c&code . -d .\proj1\module2.c .\proj2\module2.c&code . -d .\proj1\module3.c .\proj2\module3.c在compare文件夾下創(chuàng)建新文本文檔,重命名,將txt改為bat,右鍵編輯,將python運(yùn)行后輸出的字符串復(fù)制到其中,并保存。
(注:“&”可以一次性指向這些命令,如果沒有“&”,只執(zhí)行第一句。)
保存后雙擊該bat文件即可,vscode會自動打開所有需要比較的代碼文件。
?
?如果需要源文件進(jìn)行學(xué)習(xí)的,可以點(diǎn)擊下方鏈接來進(jìn)行調(diào)試。
?點(diǎn)擊前往下載(1C幣)
如果幫到你的話,希望能給作者點(diǎn)點(diǎn)贊,有問題可以在評論區(qū)提問,看到會及時回復(fù)。?
?
總結(jié)
以上是生活随笔為你收集整理的VSCode批量代码比较的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数学建模之蒙特卡罗模型
- 下一篇: OpenDrive格式高精度地图详细解析