2009-08-27 118 views
19

是否可以讓VIM突出顯示自上次保存以來更改的行?我知道它可以通過版本控制來完成,但是可以不用?我不想使用任何版本控制系統,因爲我工作的代碼沒有。Vim - 突出顯示已更改的行

我認爲UltraEdit有類似的東西。

+0

聽起來好像你正試圖讓vim成爲一個版本控制系統,所以實際上你正試圖添加一個VCS。爲什麼不使用專爲該任務設計的工具? – 2009-08-27 12:05:15

+2

儘管我已經給出了一個更直接的回答,但我必須同意William Pursell所說的使用VCS會有很多東西需要說明,即使它只是一個在本地存放到工作文件夾該項目(如集市,mercurial或git)。沒有服務器可以設置,它爲您提供了超出使用任何編輯器所能實現的寶貴功能。只是我的意見,雖然... – DrAl 2009-08-27 12:29:50

+1

我的大部分其他項目都有svn,我知道它有多寶貴,但不是特別的。我不想爲某些文件設置存儲庫。 AI的答案只是我想要的。 – Ayman 2009-08-27 17:42:41

回答

17

here

if !exists(":DiffOrig") 
    command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis 
      \ | wincmd p | diffthis 
endif 

然後就去做:DiffOrig等瞧

:help :DiffOrig 
+0

使用':diffoff'將其關閉。已經有一些關於Stackoverflow的':DiffOrig'的討論,例如。 [這裏](http://stackoverflow.com/questions/6426154/taking-a-quick-look-at-difforig-then-switching-back)。 – glts 2012-06-26 19:08:09

2

如果你使用CVS,Git的或顛覆你的源文件,那麼這個插件腳本會做你想要什麼:VIM svndiff

它可能不會太困難得到它從一個DIFF工作而不是臨時文件(如果它沒有這個選項)。

0

你需要一個臨時文件來比較,我不確定Vim有一個(它有一個.swp文件,但我不知道它是如何被利用的)。

無論如何,(古怪的)可能性可能是使用通用的SCMdiff並編寫一個命令行腳本來執行當前文件和它的一個.tmp版本之間的差異。您還應該映射一個用於保存當前版本的.tmp文件的命令,或者每次保存時自動調用。

6

vim wiki

類型 「:改變」 來顯示,其中的變化發生線。

使用「g;」和「g」跳轉到更改的行