Search code examples
vimyoucompleteme

Does VIM youCompleteMe require internet access?


YCM is that it has a client-server architecture. Vim part of YCM is just a thin client that talks to ycmd server.

I think the ycmd server is ran in the local machine, not an external right? So no internet connection is needed for YCM to work properly in VIM, right?


Solution

  • Yes, ycmd is a local server process. You can easily find it when you are using YCM. E.g. on Linux host:

    $ ps ax | grep ycmd 
    19298 ?        Ssl    0:00 /usr/bin/python2 /home/sysuser/.vim/bundle/YouCompleteMe/python/ycm/../../third_party/ycmd/ycmd --port=53805 --options_file=/tmp/tmpNUlVoT --log=info --idle_suicid
    

    Then you can check all its connections:

    $ netstat -p | grep 19298
    tcp        0      0 localhost:53805         localhost:38069         ESTABLISHED 19298/python2   
    tcp        0      0 localhost:53805         localhost:37996         ESTABLISHED 19298/python2 
    

    Regardless that there are TCP connections - all of them use loopback route. I.e. ycmd doesn't even try to connect to something outside of your machine.