如何在文件的缓存而不是实际文件上使用vim工作?

时间:2009-07-09 12:12:14

标签: vim buffer

我通常使用vim ssh到另一台计算机进行开发(请不要发布“使用Emacs”)。但是,我注意到当我的网络速度很慢时,vim非常慢(呃)。

编辑: 我在本地计算机上使用终端并使用vim scp:// host / file命令打开远程文件。但是,当我这样做时,我放入的每次按键都会导致vim进入网络,从而大大减慢了速度。相反,我希望vim读取远程文件,让我进行本地编辑,只有当我执行:w命令时才进入网络。可以把它想象成一个回写缓存选项。

我知道Komodo Edit提供了这个功能,这是我从中获得的想法。

6 个答案:

答案 0 :(得分:6)

您可以直接在vim中编辑ssh,如下所示:

:e scp://remoteuser@server.tld//path/to/document

您可以在this serverfault question中找到更多信息。

答案 1 :(得分:1)

Vim有一个名为netrw的插件(我相信这是最近的vims的标准配置)。这基本上是你想要的:它允许你通过透明地复制它来打开远程服务器上的文件。

请参阅:help netrwThe Vim Script page

答案 2 :(得分:1)

如果你打开vim scp:///并且它很慢,并且每次按键都有网络流量,那么肯定是错误的。 Vim只应在保存时生成网络流量。

也许你开启了自动保存?如果是 - 请关闭远程文件,或者至少减少干扰。

答案 3 :(得分:0)

我发现sshfs对此非常有用。它可以通过sftp挂载远程目录,然后你可以在本地运行vim(或其他任何东西)。在当前的Ubuntu上,您可以sudo apt-get install sshfs

答案 4 :(得分:0)

我不知道是否可以在vim中做到这一点,但如果你使用Linux,你可能会对sshfs感兴趣。它使用FUSE(用户空间中的文件系统)使用ssh将远程目录安装到本地目录,然后您可以像使用本地计算机一样使用此远程目录。它非常强大和可靠(如果你的ssh会话关闭,它将自动重新连接,你可能甚至不会注意到它......)。

我几乎每天都在使用它,它真的是一个很棒的软件。

答案 5 :(得分:0)

:e scp user@host:/path/file

请参阅Vim中的:help netrw:help ssh