在ssh上使用Macvim

时间:2011-03-16 05:58:10

标签: vim ssh macvim ctags

我的项目涉及在远程服务器上处理大型代码库。我不断编辑多个文件,因此不能将scp'ing文件备份到第四个文件中。 我的本地Macvim设置就像我喜欢的那样,有多个插件,包括ctags。

可以通过ssh使用Macvim,以便我可以轻松浏览并在本地运行的Macvim中打开文件?

让ctags无需安装在远程服务器上即可工作会更好但我怀疑不可能......

另一个问题是远程服务器是使用别人的.vimrc设置的,我不想使用它,但不能覆盖。

7 个答案:

答案 0 :(得分:29)

以下命令将通过ssh在MacVim中打开文件:

:e scp://username@host.com/path/to/file

我怀疑这可能不完全是你想要的,因为它一次只会给你一个文件。

如果您可以在本地安装目标系统的共享,那也可以。

答案 1 :(得分:19)

使用SSHFS(http://fuse.sourceforge.net/sshfs.html),它的一个版本随MacFUSE一起提供。

答案 2 :(得分:5)

我过去经常使用的一件事是打开一个X-11会话,然后连接到我的远程主机,并使用gvim而不是X.你将拥有一个完整的GUI版本的编辑器,它会看起来就像它在本地运行一样,但一切都在远程运行。

另一种方法是使用VNC远程控制远程主机上的会话。 Mac有几个VNC客户端。

您还可以使用Mac SFTP或FTP客户端进行连接,然后告诉它编辑一个或多个文件。如果您已将其配置为使用MacVim作为编辑器,则文件I / O将通过FTP连接透明地进行。这就是我没有ssh功能时编辑远程网站的方法。

MacVim和vim的netrw插件非常强大。如果您没有在scp://...命令上传递文件名进行编辑,vim将显示通常的目录浏览器,让您从远程计算机中选择文件并在本地编辑它。例如,这将通过SSH打开从笔记本电脑到自身的连接,并向我显示vim中的主目录:

vim scp://greg@localhost//Users/greg/

答案 3 :(得分:5)

不再维护上面建议的MacFUSE。幸运的是,有一个继任者,OSXFUSE

我在OS X 10.9上使用MacVim和OSXFUSE以及SSHFS来编辑远程Linux服务器上的代码。保存文本文件时遇到短暂的延迟(1-3秒),但除此之外,它就像使用本地文件系统一样。

答案 4 :(得分:2)

对于问题的.vimrc部分,documentation说明参数-u可能会对您有所帮助。

  

-u {vimrc}读取文件{vimrc}进行初始化。

答案 5 :(得分:0)

每个文件的scping对你的屁股都很痛苦。

虽然使用MacFuse的SSHFS可行,但它确实非常慢。我在工作中尝试了几次使用巨大的管道到一个封闭的服务器,虽然这个想法起初看起来很优雅,但这是一种令人抓狂的沙滩球经历。

服务器如何正确设置?您是以自己的/home/username身份登录其他人还是以自己身份登录?

如果稍后你可以轻松地将所有与Vim相关的东西放在你的主目录中并使用服务器的Vim几乎就像你使用MacVim一样。你甚至可以在你的主目录中的某个地方构建ctags并使用它......

如果您自己登录但没有主目录,则可以将您的Vim内容放在您具有写入权限的位置,并将其路径添加到主.vimrc,并使用if / else检查您的用户名。

我没有测试过这个解决方案,但是我使用类似的技术来加载不同的设置,而不是我在我的Mac或我的Ubuntu盒子上:

if has("gui_running")

  "various gui settings

  let os=substitute(system('uname'), "\n", "", "")
  if os == "Darwin" || os == "Mac"

    "Mac-specific settings

  elseif os == "Linux"

    "Linux-specific settings

  endif

endif

可能使用命令whoami ...

答案 6 :(得分:0)

MacFuse是保险丝的MAC版本。但不幸的是,他们不再维护该项目,并且它与Snow Leopard有一些问题,但有a fix