在ssh上使用Macvim

问题描述 投票:27回答:7

我的项目涉及在远程服务器上的大型代码库上工作。我一直在编辑多个文件,因此无法来回复制文件。我已经按照自己喜欢的方式安装了本地Macvim,并安装了包括ctags在内的多个插件。

完全可以通过ssh使用Macvim,这样我就可以轻松地在本地运行的Macvim中浏览并打开文件吗?

使ctags不安装在远程服务器上就可以工作,甚至更好,但我怀疑不可能...

另外一个问题是,远程服务器是使用我不想使用但无法覆盖的其他人的.vimrc设置的。

vim ssh macvim ctags
7个回答
19
投票

使用FUSE for macOS项目中的SSHFS。 https://github.com/libfuse/sshfs


30
投票

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

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

我怀疑这可能不完全是您要查找的内容,因为它一次只能提供一个文件。

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


6
投票

以上建议的MacFUSE已不再保留。幸运的是,有一个后继者OSXFUSE

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


5
投票

我经常使用的一件事是打开X-11会话,然后连接到我的远程主机,并在X上使用gvim。您将拥有完整的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/

2
投票

关于问题的.vimrc部分,documentation指出参数-u可能对您有帮助。

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


0
投票

对每个文件进行scp-ing会很麻烦。

虽然带有MacFuse的SSHFS可以正常运行,但速度确实非常慢。我曾尝试过使用大型管道将其连接到封闭的服务器上几次,虽然这个主意乍一看似乎很优雅,但那是一次令人发狂的皮球缠身的体验。

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

[如果以后可以轻松地将所有与Vim相关的内容放入主目录,并像使用MacVim一样使用服务器的Vim。您甚至可以在主目录中的某个位置构建ctags并使用它…

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

我尚未测试此解决方案,但无论是在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


0
投票

MacFuse是保险丝的MAC版本。但不幸的是,他们不再维护该项目,并且雪豹有一些问题,但是存在a fix

© www.soinside.com 2019 - 2024. All rights reserved.