2012-11-19 55 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