VSCode批量代码比较
前言
最近因為工作原因,需要找出一個工程里面修改過的地方。VSCode里自帶代碼比較功能,可以高亮代碼不同的地方。然而手動一個個打開文件來比較顯然非常的繁瑣,在網上檢索后發現并沒有相關的方法。因此,為了解決這個問題,在查閱了官方文檔后,決定分享這個方法。
查閱文檔
在The Visual Studio Code command-line interface中,有-d指令,可以打開差異編輯器(代碼比較),需要輸入兩個文件夾的參數。
| -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指令進入需要比較的文件夾)例如:
code . -d 目標文件1路徑 目標文件2路徑 cd 目標文件目錄 code . -d 目標文件1路徑 目標文件2路徑可以用CMD來進行操作意味著:通過編寫bat批處理命令文件即可實現一鍵打開所有需要比較的代碼。?
是
以我在桌面創建的compare文件夾為例,compare文件夾中包含了proj1和proj2文件夾,分別代表著修改前和修改后的工程文件,現在我們要找出哪些代碼發生了變化:
?在下方終端輸入
code . -d .\proj1\main.c .\proj2\main.c?然后編輯器便打開了這兩個文件的差異比較器,可以看到兩個代碼第六行有區別和變動。
?通過依次輸入下列的命令,即可以打開所有需要比對的文件:
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?但索性這里的文件比較少,如果是一個比較大的工程,文件到達兩位數時,手動輸入這些代碼也非常耗時耗力。這里推薦通過python來實現列出文件夾中的列表,并輸出需要的指令(這里python文件創建在compare目錄下,".\"可以指向當前所在目錄)。
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)運行改代碼后,成功導出了以下字符串?
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文件夾下創建新文本文檔,重命名,將txt改為bat,右鍵編輯,將python運行后輸出的字符串復制到其中,并保存。
(注:“&”可以一次性指向這些命令,如果沒有“&”,只執行第一句。)
保存后雙擊該bat文件即可,vscode會自動打開所有需要比較的代碼文件。
?
?如果需要源文件進行學習的,可以點擊下方鏈接來進行調試。
?點擊前往下載(1C幣)
如果幫到你的話,希望能給作者點點贊,有問題可以在評論區提問,看到會及時回復。?
?
總結
以上是生活随笔為你收集整理的VSCode批量代码比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数学建模之蒙特卡罗模型
- 下一篇: OpenDrive格式高精度地图详细解析