..

coc.nvim

What is coc.nvim?

coc.nvim는LSP의 기능들을 지원하여 커스텀 팝업을 사용해 키워드, 함수 등의 자동완성과 설명을 지원하는 neovim 플러그인이다.

자세한 설명은 아래의 공식 깃헙 페이지에 있다.

How to install coc.nvim

vim-plug를 사용한 설치방법을 소개한다.

.vimrc, init.vim등의 neovim 설정파일에 다음 코드를 추가한다.

1
Plug 'neoclide/coc.nvim', {'branch': 'release'}

coc-extension을 설치하는 방법은 여러가지가 있지만, 나는 여러 기기에서 비슷한 환경을 만들기 쉽기 때문에 .vimrc로 설정하는 것을 선호한다.

neovim 설정파일에 아래의 코드를 추가한다.

1
2
" set coc.nvim extensions
let g:coc_global_extensions = ['coc-python', 'coc-clangd', 'coc-cmake', 'coc-json', 'coc-sh', 'coc-webview', 'coc-markdown-preview-enhanced', 'coc-fish']

coc.nvim은 기본적으로 Node.js를 필요로 한다. coc-extensions마다 필요로 하는 npmnode의 최소 버전이 다를 수 있고, 버전이 너무 낮으면 extensions를 설치할 때 오류가 발생한다. 아래의 링크에서 Node.js를 설치할 수 있다.

Linux나macOS 사용자라면 터미널에서 아래의 코드를 실행하여 Node.js를 설치할 수 있다.

1
2
3
4
5
6
7
8
# installs nvm (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
# download and install Node.js (you may need to restart the terminal)
nvm install 20
# verifies the right Node.js version is in the environment
node -v # should print `v20.17.0`
# verifies the right npm version is in the environment
npm -v # should print `10.8.2`

Configulation

neovim의 command mode에서 :CocConfig을 입력하거나, ~/.config/nvim/coc-settings.json를 직접 수정하여 coc.nvim을 설정할 수 있다. 나는 거의 만지지 않고 거의 순정상태로 사용하고 있다. 아래의 설정은 lint를 사용해 에러를 표시할 때 에러가 나는 부분을 포함한 줄 전체에서 에러 팝업을 표시하게 해준다.

1
2
3
{
 "diagnostic.checkCurrentLine": true
}

내가 사용하는 coc.nvim 설정파일은 ingBE/vimrc github에서 볼 수 있다.