[英]How to expand/collapse a diff sections in Vimdiff?
我今天開始使用vimdiff了,並希望在基於Windows的差異編輯器上做一些我認為理所當然的事情(比如擴展/折疊差異部分,有完整的文件擴展/只有差異,上面有3個上下文行或者以下等)。 我目前只知道以下命令:
鍵盤快捷鍵:
d o - 從其他窗口更改到當前窗口。
d p - 將當前窗口中的更改放入另一個窗口。
] c - 跳轉到下一個更改。
[ c - 跳轉到之前的更改。
CTRL + W , w - 切換到另一個分割窗口( CTRL + W , CTRL + W執行相同的操作,以防稍后松開CTRL鍵)
有人能指出我正確的方向,所以我可以復制類似的功能嗎?
例如,如果我可以擴展/折疊差異周圍的線條會很好。
除了你提到的那些之外,我只是在分析以下內容時經常使用:
:diffupdate
:diffu
- >重新計算diff,在進行多次更改后很有用vim不再顯示最小的更改。 請注意,只有在vimdiff中修改了文件后,它才有效。 否則,使用:
:e
如果文件已在vimdiff之外修改,則重新加載文件。 :set noscrollbind
- >暫時禁用兩個緩沖區上的同時滾動,重新啟用:set scrollbind
和scrolling。 您要求的大多數是折疊: vim用戶手冊關於折疊的章節 。 在差異之外,我有時會使用:
zo
- >打開折疊。 zc
- >關閉折疊。 但你可能會更好地服務於:
zr
- >降低折疊水平。 zm
- >請多一個折疊級別。 甚至:
zR
- >完全減少折疊,我說! zM
- >折疊最多! 您要求的另一件事,使用n行折疊,可以在選項的vim參考手冊部分找到,通過diff部分 :
set diffopt=<TAB>
,然后更新或添加context:n
。 設置vimdiff忽略大小寫
開始使用vim diff
gvim -d main.sql backup.sql &
我發現令人討厭的是,一個文件的MySQL關鍵字是小寫的,另一個是大寫的,顯示了幾乎所有其他行的差異
:set diffopt+=icase
這會動態更新屏幕,您可以輕松地再次關閉它
實際上如果你做Ctrl+WW
,你不需要添加額外的Ctrl
。 做同樣的事情。
如上所述,ctrl + w,w可用於從窗格導航到窗格。
現在,您可以單獨選擇一個特定的更改並將其粘貼到另一個窗格,如下所示。我正在給出一個例如,好像我想將我的代碼片段從窗格1更改為窗格2,目前我的光標位於pane1
使用Shift-v突出顯示一行,然后使用向上或向下鍵選擇所需的代碼段,並從下面的步驟3繼續將更改粘貼到另一個窗格中。
使用可視模式,然后更改它
1單擊“v”這將帶您進入可視模式2使用向上或向下鍵選擇所需的代碼3單擊,Esc'轉義鍵4現在使用'yy'復制或'dd'切換更改5 do' ctrl + w,w'導航到pane2 6單擊“p”將您的更改粘貼到您需要的位置
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.