autozimu/LanguageClient-neovim
autozimu/LanguageClient-neovim has 3,564 GitHub stars and 268 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-06 18:28 UTC. Last push 2025-10-09.
Language Server Protocol (LSP) support for vim and neovim.
What you can do
- Non-blocking asynchronous calls.
- Sensible completion. Integrated well with deoplete or ncm2, or MUcomplete. Or simply with vim built-in omnifunc.
- Realtime diagnostics/compiler/lint message.
- Hover/Get identifier info.
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalFor legacy python implementation, see branch master.
⚠️ Project Unmaintained
This repository is no longer actively maintained. Users are encouraged to migrate to Neovim's native LSP client , which now provides built-in functionality that supersedes the purpose of this project.
Issues and pull requests may not be reviewed or merged. Please use this code at your own discretion.
LanguageClient-neovim
Language Server Protocol support for vim and neovim.

More recordings at Updates, screenshots & GIFs.
Features
- Non-blocking asynchronous calls.
- Sensible completion.
Integrated well with deoplete or
ncm2, or MUcomplete.
Or simply with vim built-in
omnifunc. - Realtime diagnostics/compiler/lint message.
- Rename.
- Hover/Get identifier info.
- Goto definition.
- Goto reference locations.
- Workspace/Document symbols query.
- Formatting.
- Code Action/Quick Fix.
Quick Start
Using vim-plug:
Plug 'autozimu/LanguageClient-neovim', {
\ 'branch': 'next',
\ 'do': 'bash install.sh',
\ }
" (Optional) Multi-entry selection UI.
Plug 'junegunn/fzf'
Example configuration
" Required for operations modifying multiple buffers like rename.
set hidden
let g:LanguageClient_serverCommands = {
\ 'rust': ['~/.cargo/bin/rustup', 'run', 'stable', 'rls'],
\ 'javascript': ['/usr/local/bin/javascript-typescript-stdio'],
\ 'javascript.jsx': ['tcp://127.0.0.1:2089'],
\ 'python': ['/usr/local/bin/pyls'],
\ 'ruby': ['~/.rbenv/shims/solargraph', 'stdio'],
\ }
" note that if you are using Plug mapping you should not use `noremap` mappings.
nmap <F5> <Plug>(lcn-menu)
" Or map each action separately
nmap <silent>K <Plug>(lcn-hover)
nmap <silent> gd <Plug>(lcn-definition)
nmap <silent> <F2> <Plug>(lcn-rename)
Run command nvim +PlugInstall +UpdateRemotePlugins +qa in shell to install
this plugin. Install corresponding language servers. Restart neovim/vim and
language services will be available right away. Happy hacking!
Mappings
LanguageClient-neovim defines various Plug mappings, see :help LanguageClientMappings for a full
list and an example configuration.
Install
Language Servers
Note, you will also need language server(s) to take advantages of this plugin. To find list of language server implementations and how to install them, please see http://langserver.org and/or https://microsoft.github.io/language-server-protocol/implementors/servers/.
Documentation
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,404 starspublic-apis/public-apis
A collective list of free APIs
496,723 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
437,748 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,058 stars