2009-08-08 26 views
1

我經常得到一個通知我的Vim,因爲我使用Dropbox,我的文件已在其他地方更改過。給vimdiff更改Dropbox上的文件由Vim

我然後需要按

L 

,因爲它是我能看到我的朋友改變了文件唯一途徑。這迫使我使用他的版本,然後試圖記住我所做的更改。

對於我來說,這個程序正變得越來越困難,因爲編輯的速度在增長。 我想

vimdiff [file_with_my_edits] [file_with_my_friend's_edits] 

不知我的朋友的版本與有一些新的修改我的當前文件。

當版本庫相同但當前文件不同但不丟失任何編輯時,您如何能vimdiff與您的朋友的文件當前的文件?

回答

8

如果兩個(或更多)人正在同時處理文件,則應該使用版本管理系統,如subversion或git。正如你已經看到的,在這種情況下,Dropbox不是解決方案。

+1

+1。我無法想象試圖同時編輯基本上是網絡驅動器的共享文件。 – 2009-08-08 22:00:41

+0

我使用Git,但是我還沒有設法讓我的團隊夥伴推到我的git-repo,這樣我就可以識別每個編輯。這表明我們顯然應該有兩個基地相同的回購協議。但是,我不知道如何將他的變化與我的基數進行比較。我知道'opendiff' file1 file2。我應該顯然'opendiff my_branch his_branch'。但是,我不知道該怎麼做。 – 2009-08-08 23:09:53

+2

也許如果你把git存儲庫放在保管箱中,並且你有兩個你自己的checkout,你將它們推到dropbox上的那個? – 2009-08-09 00:04:20

1

雖然我同意你應該使用源代碼控制,但你想要的東西可以在vim中完成。您可以選擇不加載朋友的編輯,將您的文件保存到新文件中,然後使用vimdiff。你甚至可以做的一切,不留VIM:

  1. :w file_with_edits.new(將更改保存到一個新的文件)
  2. :e file_with_edits(放棄更改)
  3. :diffthis(上DIFF打開當前緩衝區)
  4. :vsplit(打開一個垂直分割,示出在兩個窗口中當前文件)
  5. ^w, right(切換到右分割)
  6. :e file_with_edits.new(打開你的變化)
  7. :diffthis(打開DIFF爲右側)

所有這一切說,源頭控制,使這種事情微不足道(這是它的主要目標之一)。

+0

這是我一直在使用的程序。我使用Git作爲個人源代碼控制。 - 我需要解決如何讓朋友的分支到我的電腦。 – 2009-08-08 23:14:32

6

This vim tip給出了一個函數來區分當前緩衝區和磁盤上的文件。它旨在向您展示自上次保存以來所做的修改,但它還會顯示您的朋友進行的修改。