日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VSCode批量代码比较

發(fā)布時間:2023/12/31 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VSCode批量代码比较 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

最近因?yàn)楣ぷ髟?#xff0c;需要找出一個工程里面修改過的地方。VSCode里自帶代碼比較功能,可以高亮代碼不同的地方。然而手動一個個打開文件來比較顯然非常的繁瑣,在網(wǎng)上檢索后發(fā)現(xiàn)并沒有相關(guān)的方法。因此,為了解決這個問題,在查閱了官方文檔后,決定分享這個方法。

查閱文檔

在The Visual Studio Code command-line interface中,有-d指令,可以打開差異編輯器(代碼比較),需要輸入兩個文件夾的參數(shù)。

ArgumentDescription
-h?or?--helpPrint usage
-v?or?--versionPrint VS Code version (for example, 1.22.2), GitHub commit ID, and architecture (for example, x64).
-n?or?--new-windowOpens a new session of VS Code instead of restoring the previous session (default).
-r?or?--reuse-windowForces opening a file or folder in the last active window.
-g?or?--gotoWhen 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?--waitWait 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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。