在程序员的日常工作中,远程开发是一个常见的情景。有时,由于各种原因,我们需要远程连接到开发机来编写代码。然而,随着机房搬迁后的网络延迟增加,这一本应「爽」的体验变得有些令人烦恼。在这篇文章中,我们将探讨如何实现远程开发的顺畅体验,解决延迟问题,使远程开发再次变得愉快。
背景
最近,机房搬迁导致了到开发机的网络延迟明显增加。尽管编辑代码时不会出现明显的卡顿,但操作延迟明显,让人感到不够流畅。对于许多喜欢使用Vim的开发者来说,这是一个令人头疼的问题。那么,开发者们是如何在远程开发中解决这个问题的呢?
方法一:使用SMB挂载远程目录
有些开发者尝试使用SMB(Server Message Block)协议来挂载远程目录到本地。这样做的好处是,操作(如移动光标)会变得流畅,但也带来了一些问题。特别是在单文件系统的速度上,可能会感到非常慢,这会让整个开发体验变得糟糕。
方法二:使用Emacs+Tramp
另一种方法是使用Emacs,结合Tramp插件。Tramp是一个Emacs的插件,它可以帮助你在远程服务器上编辑文件。尽管这个方法在某些情况下可以工作,但根据一些开发者的反馈,Tramp的体验并不是很好,可能不够流畅。
方法三:使用VSCode+Vim插件
有一部分开发者选择了在VSCode中安装Vim插件,以获得Vim的编辑体验。这种方法的好处是,你可以在VSCode中享受到Vim的生态系统,同时也能够使用VSCode Remote来远程开发,这样操作和渲染在本地实现,只在后台异步同步。此外,你还可以使用服务端的LSP(Language Server Protocol)和工具链,以确保开发体验的顺畅。
方法四:使用其他远程控制工具
一些开发者建议使用其他远程控制工具,如SSH -X、NoMachine等,以降低网络延迟。此外,还有建议尝试使用UDP的mosh(mobile shell)来减少网络延迟。
结论
远程开发是现代软件开发的一部分,但面临网络延迟的问题可能会让这一过程变得痛苦。然而,有多种方法可以尝试来改善远程开发的体验。选择合适的工具和方法,根据自己的需求进行调整,以确保远程开发依然能够高效愉快地进行。