내 주 개발환경은 vim-go와 YouCompleteMe이다(그리고 이건 ‘였다’로 바뀌게 된다). YCM을 설치할 때 여러 시행착오를 겪기도 했지만 맥북에 성공적으로 설치한 뒤 계속 사용해오고 있었다. 이번에 만자로 리눅스를 설치하면서 개발 환경을 재구축해야 하는 상황이 되었는데, 맥북에서 잘 쓰고 있는 .vimrc
파일을 그대로 가져와 사용하기로 생각했었다.
Vundle.Vim
을 사용해 :PluginInstall
를 문제 없이 넘기고 YCM 디렉터리에 들어가 python3 install.py --go-completer
를 실행했을 때도 make
가 깔려있지 않아 한번 실패했던 것을 제외하면 아무런 문제 없이 빌드되었다. 그리고 행복하게 개발했답니다~라고 끝난다면 이 포스트가 생기지 않았을 것이다.
테스트를 위해 nvim main.go
를 실행해보았다. vim-go
는 vim으로 go 파일을 생성할 시에 Hello, World!
가 출력되는 예제를 만들어준다. fmt.Println("Hello, World!")
아래에 한줄을 만들고 fmt.
까지 입력하였다. 정상적으로 작동을 한다면 Println
, Sprintln
등 fmt
에 속한 함수들을 보여주어야 할텐데, 아무 것도 보이지 않았다.
아무런 에러 내용이 나타나질 않길래 :YcmToggleLogs
로 gocode의 에러 로그를 보았다. 에러가 있긴 있었다. 에러 내용을 그대로 복사&붙여넣기 하여 구글에 검색해봐도 해결되는 방법을 찾을 수 없었다. gocode
가 문제인 걸까하고 여러번 재설치해보고 Github Issue에 나와있는대로 go/pkg
디렉터리를 비워보기도 했지만 전혀 해결되지 않았다. 물론 YCM도 여러번 재설치해보았다.
문제가 해결될 기색이 보이지 않았다. 그래도 여러번 검색한 결과 deoplete-go라는 것을 찾았다. 이거라면 해결할 수 있지 않을까?
README.md
를 읽어보니 YCM에 붙어 사는건 아니었지만 gocode
는 똑같이 필요로 했다.
.vimrc
Plugin 'Shougo/deoplete.nvim'
Plugin 'zchee/deoplete-go', {'do': 'make'}
let g:deoplete#enable_at_startup = 1
완벽히 해결된다. YCM보다도 설치가 더 쉬운듯한 느낌이다.