vim vimdiff diff 使用及命令

2021-09-07 03:30:03 字數 4775 閱讀 4621

vim:

vim 從 vim7 開始加入了多標籤切換的功能, 相當於多視窗. 之前的版本雖然也有多檔案編輯功能, 但是總之不如這個方便啦。用法:

:tabnew [++opt選項] 〔+cmd〕 檔案            建立對指定檔案新的tab

:tabc       關閉當前的tab

:tabo       關閉所有其他的tab

:tabs       檢視所有開啟的tab

:tabp      前乙個

:tabn      後乙個

標準模式下:

gt , gt 可以直接在tab之間切換。

還有很多他命令, 看官大人自己, :help table 吧。

多視窗建立及焦點切換:

在vim中開多視窗其實比較簡單,也有不只一種方法,直接使用命令:new預設就是開啟乙個水平分割的新視窗。另外乙個命令就是:split(sp)

但是預設水平分割多少有點不爽,因為本來螢幕就是寬屏的,**幾乎不會寫那麼長了,而真正缺少的垂直空間,所以這個時候就要用到垂直分割了,命令是:vsplit(vs),很簡單了一目了然。

開啟了這麼多視窗不知道如何切換肯定不行啦。切換也很簡單,組合鍵ctrl+w,然後通過j/k,來定位視窗,注意看好視窗游標變化。不過個人感覺這樣比較麻煩,每切換一次視窗都要先按組合鍵才行。還好還有另一種方法,那就是直接連續按兩次ctrl+w組合鍵,vim會自動跳到下乙個視窗。

另外更改視窗寬度的命令是: crtl+w > 將當前視窗向右邊擴充套件一行,將 > 換成 < 就是向左邊擴充套件一行。也可以在之前使用數字代表擴充套件的行數, 5 ctrl+w > ,向右邊擴充套件5行。

更改視窗高度類似,只是命令是ctrl+w + ,增加高度,- 減小高度。

vimdiff:

啟動vimdiff

方法一:# vimdiff  file_left  file_right

方法二:# vim -d  file_left  file_right

方法三:# vim file_left 之後開啟vim後輸入:vertical diffsplit file_right

視窗布局切換

ctrl-w k(把當前視窗移到最上邊)

ctrl-w h(把當前視窗移到最左邊)

ctrl-w j(把當前視窗移到最下邊)

ctrl-w l(把當前視窗移到最右邊)

視窗焦點切換,即切換當前視窗

ctrl-w h 跳轉到左邊的視窗

ctrl-w j 跳轉到下面的視窗

ctrl-w k 跳轉到上面的視窗

ctrl-w l 跳轉到右邊的視窗

ctrl-w t 跳轉到最頂上的視窗

ctrl-w b 跳轉到最底下的視窗

ctrl-w w 跳轉到另乙個視窗

ctrl-w ctrl-w 跳轉到另乙個視窗,同ctrl-w w

游標移動

移動游標,切分視窗會同步移動,使用:set noscrollbind命令可取消同步

]c 跳到下乙個不同的地方

[c 跳到上乙個不同的地方

上下文摺疊

預設情況下,vimdiff會將檔案中不同之處上下6行之外的相同文字摺疊隱藏,可通過 :set diffopt=context:3 修改顯示的上下文行數。

zo 開啟摺疊

zc 關閉摺疊

其他摺疊

zf   建立摺疊(使用數字表示建立有當前行到下多少行的摺疊,比如3j就建立包括4行的摺疊)

zo   開啟摺疊(l也可以開啟摺疊)

zc   關閉當前摺疊

zm   關閉所有摺疊

zr   開啟所有摺疊

ze   刪除所有摺疊

zd   刪除當前摺疊

za   若當前開啟則關閉,若當前關閉則開啟

zj   到下一摺疊的開始處

zk   到上一摺疊的末尾

檔案合併

dp 將當前視窗游標位置處的內容複製到另一視窗

do 將另一視窗游標位置處的內容複製到當前視窗

diffupdate 重新比較兩個檔案,如果手動修改檔案的話有時不會自動同步

檔案操作

yy 複製當前行

nyy 複製當前行開始的n行

dd 刪除當前行

ndd 刪除當前行開始的n行

p 貼上

u 撤銷

ctrl-r 重複(即取消撤銷)

wa 全部儲存

wqa 全部儲存後退出

qa 全部退出

qa! 全部強制退出,不儲存檔案修改

diff:

diff [option] file1 file2

下邊是diff出來的結果:表示file1與file2的從60到63之間4行的比較結果!!

60,63c60,63

< ^[[00;34m malloc|^[[0m      45953       55944474              0^[[00;00m

< ^[[00;34mrealloc|^[[0m       5921         241437              0^[[00;00m   (in place: 1363, dec: 52)

< ^[[00;34m calloc|^[[0m       2171         323352              0^[[00;00m

< ^[[00;34m   free|^[[0m      54747       55682454

> ^[[00;34m malloc|^[[0m      47899       55961673              0^[[00;00m

> ^[[00;34mrealloc|^[[0m       8551         283037              0^[[00;00m   (in place: 1411, dec: 52)

> ^[[00;34m calloc|^[[0m       2433         341968              0^[[00;00m

> ^[[00;34m   free|^[[0m      58869       55759829

下邊是diff新增選項-crn出來的結果:只發生+或-操作合併顯示;發生修改則分開顯示!!

*** 37,42 ****

--- 37,43 ----

#define enable_touch_events @enable_touch_events_value@

#define enable_video @enable_video_value@

#define enable_web_sockets @enable_web_sockets_value@

+ #define enable_wml @enable_wml_value@

#define enable_workers @enable_workers_value@

#define enable_xhtmlmp @enable_xhtmlmp_value@

#define enable_xpath @enable_xpath_value@

*** 126,130 ****

endif ()

endforeach ()

!     source_group("derivedsources" regular_expression "$")

endmacro ()

--- 126,130 ----

endif ()

endforeach ()

!     source_group("derivedsources" regular_expression "$")

endmacro ()

下邊是diff新增選項-uarn出來的結果:從file1的第1225行開始的7行之內有刪除,從file2的第1159行開始的6行之內有新增或修改!!

@@ -1225,7 +1159,6 @@

xpath support                                            : $enable_xpath

xslt support                                             : $enable_xslt

spellcheck support                                       : $enable_spellcheck

- animation api                                            : $enable_animation_api

gtk+ configuration:

gtk+ version                                             : $with_gtk

diff -uarn r85406/gnumakefile.am r82327/gnumakefile.am

--- r85406/gnumakefile.am   2011-06-20 13:27:54.000000000 +0800

+++ r82327/gnumakefile.am   2011-06-20 10:23:56.000000000 +0800

vim vimdiff diff 使用及命令

vim vim 從 vim7 開始加入了多標籤切換的功能,相當於多視窗.之前的版本雖然也有多檔案編輯功能,但是總之不如這個方便啦。用法 tabnew opt選項 cmd 檔案 建立對指定檔案新的tab tabc 關閉當前的tab tabo 關閉所有其他的tab tabs 檢視所有開啟的tab tab...

VMware License Server使用經驗

近期在測試vmware server,在使用vmware license server的時候碰到一些問題,經過兩天的實驗,問題得以解決,現記錄如下,以供朋友們參考。1 複製license檔案 在安裝vmware virtualcenter的時候,會一同安裝license server伺服器。如果你在...

Django Rest framework使用例項

一 修改配置檔案 setting.py django.contrib.admin django.contrib.auth django.contrib.contenttypes django.contrib.sessions django.contrib.messages django.contri...