gvim比較兩個文件不同并合并差異

使用 gvim 比較兩個文件的不同:

方式一,使用 gvim 同時打開兩個待比較的文件。
比較通用方式是采用 gvim -d 選項,具體命令,如下:

gvim -d <file1> <file2>

方式二,先用 gvim 打開一個文件,然后啟動 diff mode,與另一個文件進行比較。

  1. 正常使用 gvim 編輯一個文件 <file1> ,命令如下:

    gvim <file1>
    
  2. 然后采用 :diffthis:diffsplit 命令啟動 diff mode。

    a) 采用 :diffthis 命令的具體示例

    在當前文件 <file1> 窗口中,打開另一個文件 <file2> 。如果采用垂直切分(vertical split)方式打開文件 <file2>,命令如下:

    :vs otherFile
    

    如果采用水平切分(horizontal split)方式打開,命令如下:

    :sp otherFile
    

    在當前文件 <file1> 中,啟動 diff mode,命令如下:

    :diffthis
    

    到此,就可以看到兩個文件的差異顯示了。

    關閉 diff mode 的命令,如下:

    :diffoff
    

    b) 采用 :diffsplit 命令的具體示例

    一條命令即可以顯示兩文件之間的差異,如下:

    :diffsplit <file2>
    

    如果以垂直切割窗口方式打開了<file2>,使用命令:

    :vert diffsplit <file2>
    

切換分屏

ctrl+w ,再按 h左, l右, j 下, k 上,w 窗口循環切換

關閉當前窗口分屏:ctrl+w,再按 c

向右或向下方交換窗口:Ctrl + w + r 而Ctrl + w + R則和它方向相反。
交換同列或同行的窗口的位置:Ctrl + w + x

diff mode 常用命令速查表(cheat sheet)

[c     Jump to the previous diff 跳到前一個不同之處

]c     Jump to the next diff 調到下一個不同之處

do    diffget: Pull the changes to the current file 將所有的不同之處拉到當前文 件,使之與另一個文件內容相同

dp    diffput: Push the changes to the other file 將所有的不同之處推到另一個文件

:diffupdate  rescan files for differences 重新掃描文件之間的不同之處

可以使用2]c 跳轉到下兩個差異點 可以在第 5行和第 16行之間用diffput,在第
19行到23行之間使用diffget,命令如下:

bash :5,16diffput :19,23diffget

Folds 折疊命令

zo/zO   Open 打開折疊

zc/zC   Close 關閉折疊

za/zA   Toggle 在打開折疊和關閉折疊之間進行切換

zv    Open folds for this line 為當前行打開折疊

zM    Close all 關閉所有折疊

zm    Fold more (foldlevel += 1) 更多地折疊

zR    Open all 打開所有折疊

zr    Fold less (foldlevel -= 1) 更少地折疊

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/83949.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/83949.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/83949.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

15個基于場景的 DevOps 面試問題及答案

第一部分:持續集成和部署 (CI/CD) 場景 1:構建中斷 “您的 CI 流水線突然出現‘找不到依賴項’的錯誤。您會如何處理這個問題?” 回答:首先,我會檢查是否有新的依賴項被添加到需求文件中,但這些依賴項并未包含在需求文件中。我還會驗證構建服務器是否可以訪問互聯網來下…

Linux隨記(十八)

一、k8s的node節點磁盤 /data已使用率超過 85% , 出現disk pressure &#xff0c;驅逐pod現象 evicted &#xff0c; the node had condition:[DiskPressure] #修改/var/lib/kubelet/config.yaml ]# cat /var/lib/kubelet/config.yaml apiVersion: kubelet.config.k8s.io/v1…

利用Python 進行自動化操作: Pyautogui 庫

目錄 1. 前言 2. 安裝 PyAutoGUI 3. 常見函數介紹 3.1 鼠標操作 3.2 鍵盤操作 3.3 截圖與圖像識別 4. 簡單案例 5. 總結 1. 前言 我們常常需要與各種軟件和系統交互&#xff0c;而人工操作往往耗時且容易出錯。這時&#xff0c;PyAutoGUI 就可以幫我們解放雙手&#…

如何在Windows本機安裝Python并確保與Python.NET兼容

?作者簡介&#xff1a;2022年博客新星 第八。熱愛國學的Java后端開發者&#xff0c;修心和技術同步精進。 &#x1f34e;個人主頁&#xff1a;Java Fans的博客 &#x1f34a;個人信條&#xff1a;不遷怒&#xff0c;不貳過。小知識&#xff0c;大智慧。 &#x1f49e;當前專欄…

oracle數據恢復—oracle數據庫執行truncate命令后的怎么恢復數據?

oracle數據庫誤執行truncate命令導致數據丟失是一種常見情況。通常情況下&#xff0c;oracle數據庫誤操作刪除數據只需要通過備份恢復數據即可。也會碰到一些特殊情況&#xff0c;例如數據庫備份無法使用或者還原報錯等。下面和大家分享一例oracle數據庫誤執行truncate命令導致…

計算機二級Python考試的核心知識點總結

以下是計算機二級Python考試的核心知識點總結&#xff0c;結合高頻考點和易錯點分類整理&#xff1a; 1. **數據類型與運算** ? 不可變類型&#xff1a;int, float, str, tuple&#xff08;重點區分list與tuple&#xff09; ? 運算符優先級&#xff1a;** > * /…

Vue 組件庫發布實戰(含 TypeScript 支持)

整理不易&#xff0c;如果本文對你有幫助&#xff0c;歡迎點個【贊 &#x1f44d;】【收藏 ?】【關注 &#x1f9e1;】 &#x1f4e6;Vue 組件庫發布實戰&#xff08;含 TypeScript 支持&#xff09; 在上一篇中我們完成了一個基礎 Vue 3 組件的 npm 發布流程。本文將升級內容…

新版雙紫擒龍、紫紫紅黃、動能二號源碼指標源碼公式講解

雙紫擒龍量化指標公式源碼&#xff0c;雙紫擒龍紫紫紅黃2025升級版的量化指標龍頭模型............ 實戰舉例&#xff0c;量化擒龍------副圖源碼&#xff0c;如下&#xff1a; DIF:EMA(CLOSE,12)-EMA(CLOSE,26); DEA:EMA(DIF,9); ABC2:REF(CLOSE,1); ABC3:IF((CLOSE-ABC2…

c++中鎖類型對比與實戰

C++中的鎖類型對比與實戰:std::lock_guard、std::unique_lock、std::shared_lock 在多線程編程中,合理地使用鎖是保證數據一致性和線程安全的關鍵。C++標準庫提供了多種鎖類型,每種都有其適用場景和性能特性。本文將深入分析 std::lock_guard、std::unique_lock、std::shar…

iview Switch Tabs TabPane 使用提示Maximum call stack size exceeded堆棧溢出

在vue項目中使用iview 框架部分組件時&#xff0c;直接引入使用報Maximum call stack size exceeded image.png 堆棧溢出 解決方案 更換組件名稱就可以了 image.png 或 image.png 就可以了 猜測是因為和vue自己提供的組件名稱一致了&#xff0c;重名問題導致的&#xff0c;具體…

初識結構體,整型提升及操作符的屬性

目錄 一、結構體成員訪問操作符1.1 結構體二、操作符的屬性&#xff1a;優先級、結合性2.1 優先級2.2 結合性C 運算符優先級 三、表達式求值3.1 整型提升3.2 算數轉化 總結 一、結構體成員訪問操作符 1.1 結構體 C語言已經提供了內置類型&#xff0c;如&#xff1a;char,shor…

JVM-內存結構

&#x1f9e9; 一、JVM內存五大核心結構詳解 &#x1f4cc; 1. 程序計數器&#xff08;Program Counter Register&#xff09; 特性說明作用記錄當前線程執行的字節碼行號指示器&#xff08;分支/循環/異常處理的核心&#xff09;線程私有? 每個線程獨立存儲指令位置異常? …

從 Revit 到 3DTiles:GISBox RVT 切片器如何讓建筑圖元在 Web 端展示

在GIS&#xff08;地理信息系統&#xff09;行業蓬勃發展的當下&#xff0c;數據處理與展示的效率和精準度成為關鍵。GISBox作為一款功能強大的一站式三維GIS數據編輯、轉換、發布平臺&#xff0c;憑借其獨特的“RVT切片器”功能&#xff0c;在RVT圖元處理方面也有著不俗的表現…

【Linux】為 Git 設置 Commit 提交模板方法,可統一個人或者項目的提交風格

為 Git 設置 Commit 提交模板 新建模板文件。注意之后不能刪除該文件。 gedit ~/.gitmessage.txt粘貼自己的模板。可以給 AI 提自己的需求&#xff0c;定制一個模板&#xff0c;例如 # <type>(<scope>): <description> # # [optional body] # # [optional…

Android第十二次面試GetX庫渲染機制

核心引擎&#xff1a;GetX / Obx 的魔法 .obs 是數據響應式化的關鍵操作&#xff0c;它將普通變量轉換為可觀察(Observable)對象&#xff1a; // 傳統變量 - 無法自動通知更新 int count 0; // 響應式變量 - 自動通知能力 var count 0.obs; // RxInt(0) Obx 是 UI ?響應式…

用 Whisper 打破沉默:AI 語音技術如何重塑無障礙溝通方式?

網羅開發 &#xff08;小紅書、快手、視頻號同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企業從事人工智能項目研發管理工作&#xff0c;平時熱衷于分享各種編程領域的軟硬技能知識以及前沿技術&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…

ubuntu 添加應用到啟動菜單

使用Alacarte菜單編輯器 Alacarte是一個簡單易用的菜單編輯器&#xff0c;可以幫助用戶添加、刪除或編輯應用程序的啟動菜單項。 安裝Alacarte sudo apt-get install alacarte 執行alacarte alacarte 使用說明 選擇新建項目進行添加 "Name"欄填自定義的名稱&quo…

【學習筆記】構造函數+重載相關

【學習筆記】構造函數重載相關 一、構造函數 構造函數在創建對象的過程就會執行&#xff0c;帶參數與不帶參數&#xff0c;帶參數的構造函數會默認將成員變量賦值傳進去的參數。 class Layer { private:int layer_id; // 層IDstd::string layer_json; // 層的JSON配置…

6.6 計算機網絡面試題

描述一下打開百度首頁后發生的網絡過程 網頁非常慢轉圈圈的時候&#xff0c;要定位問題需要從哪些角度&#xff1f; server a和server b&#xff0c;如何判斷兩個服務器正常連接&#xff1f;出錯怎么辦&#xff1f; 服務端正常啟動了&#xff0c;但是客戶端請求不到有哪些原因?…

Java -jar命令運行外部依賴JAR包的深度場景分析與實踐指南

Java -jar命令運行外部依賴JAR包的深度場景分析與實踐指南 引言&#xff1a;外部依賴JAR的必要性 在Java應用部署中&#xff0c;java -jar命令是啟動可執行JAR包的標準方式。但當應用需要依賴外部JAR文件時&#xff08;如插件系統、模塊化部署、共享庫等場景&#xff09;&…