# LSP server with uv and vim

**URL:** <https://forum.modular.com/t/lsp-server-with-uv-and-vim/2285>\
**Category:** LSP\
**Created:** [September 19, 2025, 3:47pm UTC](https://forum.modular.com/t/lsp-server-with-uv-and-vim/2285 "2025-09-19T15:47:09Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![gonsolo](https://avatars.discourse-cdn.com/v4/letter/g/3e96dc/32.png) [@gonsolo](https://forum.modular.com/u/gonsolo)\
**Post date:** [September 19, 2025, 3:47pm UTC](https://forum.modular.com/t/lsp-server-with-uv-and-vim/2285/1 "2025-09-19T15:47:09Z")

</div>

I have a Mojo repository with uv: [GitHub - gonsolo/mojo\_gpu\_raytracer](https://github.com/gonsolo/mojo_gpu_raytracer)

To edit: “uv run vim file.mojo”

In ~/.vimrc:

> if executable(‘uv’)  
> au User lsp\_setup call lsp#register\_server({  
> \ ‘name’: ‘Mojo Language Server’,  
> \ ‘cmd’: {server\_info → [‘uv’, ‘run’, ‘–’, ‘.venv/lib/python3.13/site-packages/max/bin/mojo-lsp-server’, ‘-I’, ‘.venv/lib/python3.13/site-packages/max/lib/mojo’]},  
> \ ‘whitelist’: [‘mojo’],  
> \ })  
> endif  
> autocmd FileType mojo nnoremap \<C-]\> :LspDefinition  
> autocmd FileType mojo setlocal omnifunc=lsp#complete

---

<div class="post-metadata">

**Author:** ![inaarawalji](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/inaarawalji/32/742_2.png) [@inaarawalji](https://forum.modular.com/u/inaarawalji)\
**Post date:** [October 1, 2025, 8:45pm UTC](https://forum.modular.com/t/lsp-server-with-uv-and-vim/2285/2 "2025-10-01T20:45:26Z")

</div>

Thanks for sharing! 🙂

---

<div class="post-metadata">

**Author:** ![gonsolo](https://avatars.discourse-cdn.com/v4/letter/g/3e96dc/32.png) [@gonsolo](https://forum.modular.com/u/gonsolo)\
**Post date:** [October 9, 2025, 7:34am UTC](https://forum.modular.com/t/lsp-server-with-uv-and-vim/2285/3 "2025-10-09T07:34:14Z")

</div>

Update for 25.6.:

> let g:mojo\_venv\_path = ‘.venv/lib/python3.13/site-packages/modular’
> 
> if executable(‘uv’)  
> au User lsp\_setup call lsp#register\_server({  
> \ ‘name’: ‘Mojo Language Server’,  
> \ ‘cmd’: {server\_info → [  
> \ ‘uv’, ‘run’, ‘–’,  
> \ g:mojo\_venv\_path . ‘/bin/mojo-lsp-server’,  
> \ ‘-I’, g:mojo\_venv\_path . ‘/lib/mojo’  
> \ ]},  
> \ ‘whitelist’: [‘mojo’],  
> \ })  
> endif
