2012-11-19 94 views
2

我用於Sublime的插件,讓您在本地項目和遠程項目之間進行映射。通過這樣做,當您完成編輯文件時,您可以執行右鍵單擊和「上傳文件」操作,該操作會自動更新遠程服務器中的文件。通過SFTP上傳VIM支持

我想知道用VIM進行編程時,最好的方法是什麼。我正在尋找一種簡單的方法來將本地項目映射到遠程項目並能夠輕鬆上傳文件。

感謝

回答

8

如果你想要的是一個遠程服務器上編輯文件, 嘗試vim的netrw功能:

vim scp://[email protected]//path/to/directory/ 

直接編輯文件:

vim scp://[email protected]//path/to/directory/somefile.txt 

或者,如果你已經在vim,點擊ESC,然後輸入:

:e scp://[email protected]//path/to/directory/ 

這假定:

  1. 您安裝ssh(通常是Linux或OSX的情況;如果你在Windows上,那麼它取決於)。
  2. 你必須通過一些簡便的方法(sshagent和密鑰)ssh訪問服務器
+0

這是一個很好的答案。但是,如果每次我想上傳一個文件,我都需要做:e scp:....非常繁瑣。我很驚訝沒有插件可以做這個映射。 –

+0

你只做一次':e'的事情。這就像直接編輯遠程服務器上的文件,而不是擁有本地副本並定期上傳它。所以當你像往常一樣保存文件(比如用':w'或':wq')時,遠程服務器上的文件也將被保存。你用什麼vim的味道? (Windows?Linux?Gui?Console?) – Faiz

+0

@HommerSmith,我很驚訝你沒有找到[this plugin](http://www.vim.org/scripts/script.php?script_id=1192)。 – romainl

0

最嚴重的FTP客戶端,讓你在本地編輯遠程文件。 Filezilla,gFTP,Transmit,Cyber​​duck,YummyFTP ......他們都有自己的「Edit in ...」按鈕。圖形用戶界面FTP客戶端可能不是性感的黑客工具,但他們的工作很好非常

其中一些嚴重的FTP客戶端具有同步功能或文件夾監視器。這可能值得您花時間來尋找這樣的功能。

當然,你也可以用Vim本身通過FTP或SFTP編輯遠程文件:

$ vim sftp://[email protected]/filename 
$ vim ftp://[email protected]/filename 

,並列出遠程文件:

$ vim sftp://[email protected]/directory/ 

更多信息,請參見:help netrw

您是否考慮過使用Subversion,Git或Mercurial等VCS?

+0

我實際上有一個本地項目和遠程服務器中的項目。儘管我使用GIT,但我希望能夠在本地執行更改並通過SFTP進行上載。我不想編輯遠程服務器中的那些,但是在本地編輯並上傳。 –

1

通過FTP遠程編輯文件有一個固有的缺點:你沒有本地機器上的代碼目錄。這意味着您不能在本地搜索代碼或在Vim中構建您的標籤並自動完成,除此之外。

使用VCS很好,但只有當你有一個你想保存的代碼版本。每隔幾分鐘進行一次存儲以便進行測試和調試,這遠不是VCS的目的。

這意味着通過sftp/ftp編輯有時是一個完美的答案。我是Vim的愛好者,但我們不要強迫它成爲一個偉大的ftp客戶端。如果你在Windows上,爲什麼不嘗試WinSCP的同步功能?您可以在本地擁有所有文件,而不必擔心點擊上傳按鈕。

http://winscp.net/eng/docs/task_keep_up_to_date

Loonix更容易:

http://en.wikipedia.org/wiki/SSHFS