NeoVim에서 LSP (Language Server Protocol)를 사용하면 정의 점프 등이 극적으로 빨라졌습니다.
vim8을 사용하여 go를 코딩했지만,
머신 파워 부족&왠지 vim이 무겁고, 정의 점프등이 느린 것이 꽤 스트레스였으므로,
어떻게든 개선할 수 없을까 시행착오한 결과, 꽤 빨라졌으므로 같은 상황에 고민하고 있는 분이 있으면 꼭 시험해 보세요.
아젠다
vim-go와 LSP의 속도 차이
vim-go의 점프가 푹신한 반면,
LSP는 바삭하게 점프하고 있는 것은 일목요연이네요.
제대로 조사하고 있지 않습니다만, vim-go의 무거운 원인은 아마
guru
의 범위 설정일까.환경
MacBook Early 2015
CPU 1.2GHz Intel Core M
메모리 8GB 1600MHz DDR3
MacOS Mojave
Neovim 0.3.1
※ vim8에서도 LSP가 움직였습니다
dein
vim-lsp
vim-async
소개
LSP를 도입하려면 다음과 같이 설정하면 됩니다.
구성 파일은 여기에 있습니다.
[[plugins]]
repo = 'prabirshrestha/async.vim'
[[plugins]]
repo = 'prabirshrestha/vim-lsp'
let mapleader = "\<Space>"
" 中略...
if executable('go-langserver')
au User lsp_setup call lsp#register_server({
\ 'name': 'go-langserver',
\ 'cmd': {server_info->['go-langserver', '-mode', 'stdio']},
\ 'whitelist': ['go'],
\ })
endif
nmap <silent> <Leader>d :LspDefinition<CR>
nmap <silent> <Leader>p :LspHover<CR>
nmap <silent> <Leader>r :LspReferences<CR>
nmap <silent> <Leader>i :LspImplementation<CR>
nmap <silent> <Leader>s :split \| :LspDefinition <CR>
nmap <silent> <Leader>v :vsplit \| :LspDefinition <CR>
LSP의 장점과 단점
보시다시피, 기계의 힘이 없어도 나름대로 빨리 움직이는 곳이 가장 큰 장점이라고 생각합니다.
vim-go는
go run
, go vet
, go lint
등 기능이 풍부합니다만, LSP는 현시점에서 다음 의 일 밖에 할 수 없는 것 같습니다. 주로 코딩 시 사용
정도라고 생각하기 때문에, vim-go의 기능과 조합하면 나름대로 코딩 스피드가 오르는 것은 아닐까라고.
:LspNextError
등이 있는 것 같습니다만, 지금 이치 사용법을 모르기 때문에 알고 있는 분이 있으면 가르쳐 주시면 기뻐합니다.마지막으로
LSP가 앞으로 더 많은 일을 할 수 있게 되어 가면 좋다고 생각하면서, 기장에 기다리려고 생각합니다.
덧붙여서 vim으로 go를 쓰고 있는 분으로, 이렇게 하면 좀더 소코딩 완성한다고 하는 것이 있으면 가르쳐 주실 수 있으면 기뻐합니다.
뭐야...
Reference
이 문제에 관하여(NeoVim에서 LSP (Language Server Protocol)를 사용하면 정의 점프 등이 극적으로 빨라졌습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gorilla0513/items/783836797ff84a3a4753
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(NeoVim에서 LSP (Language Server Protocol)를 사용하면 정의 점프 등이 극적으로 빨라졌습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gorilla0513/items/783836797ff84a3a4753텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)