我的项目涉及在远程服务器上处理大型代码库。我不断编辑多个文件,因此不能将scp'ing文件备份到第四个文件中。 我的本地Macvim设置就像我喜欢的那样,有多个插件,包括ctags。
可以通过ssh使用Macvim,以便我可以轻松浏览并在本地运行的Macvim中打开文件?
让ctags无需安装在远程服务器上即可工作会更好但我怀疑不可能......
另一个问题是远程服务器是使用别人的.vimrc设置的,我不想使用它,但不能覆盖。
答案 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)
虽然使用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)