用lsyncd加速vim language server

Posted FengShao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用lsyncd加速vim language server相关的知识,希望对你有一定的参考价值。

远程编辑在VSCode里面的解决方案是 remote ssh, VSCode会在远端运行一个agent以加速language server对代码文件的访问和解析。然而对vimer,我们可能的解决方案是sshfs,这个的问题在于通过sshfs对文件的访问很慢,导致coc-vim这种ls client慢到基本不能用的地步。

那么我们可以用lsyncd来帮忙,这东西结合了inotify和rsync来实现近实时的目录同步。我们可以在本地clone一份代码,然后建立一个lsyncd的配置文件lsyncd.conf:

sync {
    default.rsync,
    source    = "/home/user/intel/machine/proj",
    target    = "machine:/root/src/proj",
    delay     = 5,
    delete    = false,
    excludeFrom = "/home/user/intel/machine/proj/lsyncd.exclude",
    rsync     = {
        binary   = "/usr/bin/rsync",
        archive  = true,
        compress = true,
        chown = "root:root"
    }
}

其中的lsyncd.exclude是需要exclude的一些文件,比如.git等:

node_modules
.git
dist
lib
lsyncd.conf
lsyncd.exclude
lsyncd.pid

然后,我们只需要启动lsyncd的daemon就可以直接在本地用vim编辑,实时同步到远端了。因为language server访问的是本地文件,速度杠杠的。

lsyncd -pidfile lsyncd.pid lsyncd.conf 

以上是关于用lsyncd加速vim language server的主要内容,如果未能解决你的问题,请参考以下文章

Linux文件远程实时同步-- Lsyncd

跨语言(python 到 scala)稀疏数据 ser/deser?

lsyncd部署

debian 安装配置lsyncd

lsyncd搭建测试

文件同步工具 lsyncd2.1.6 安装使用问题