갤 살리기 운동 일환으로 뭐라도 연재 시작해봄
순정 vim부터 (9.0 기준) neovim까지 (nightly 기준) 자잘한 팁같은거 조금씩 뿌릴 생각임
h,j,k,l 같은 vim motion이나 기본적인 config 작성법은 안다는 전제 하에 적을거임
강좌가 아니라 어디까지나 팁. 검색하면 수두룩하게 나오는 누구나 다 아는 정보는 피해서,
최대한 듣보잡 정보인데 알아두면 쓸만한것들만 모아보려 하고 있음
내장 help 문서가 이미 잘 작성되어 있는 vim 특성상 글이 좀 짧은건 양해바람
잘못된 정보에 대한 피드백은 언제나 환영
———
저번에 누가 내장 omnifunc로 coc.nvim을 대체할 수 있냐고 물어봤길래 한번 집고 넘어감
유명 vim/neovim 플러그인들과 그게 정확히 왜 필요한건지 알아볼꺼임
다 다시 확인해가면서 적기엔 양이 너무 많아서 쪼개서 적어봄
스포일러: fuzzy file finder만 빼면 필요한건 다 내장되어 있음
이름은 Coquer of Completion 이지만 엄밀히 말해서 자동완성 플러그인은 아니다.
그거보다 훨씬 더 많은 일을 하고 있음
vscode 코어를 뜯어내서 vim/neovim에 연결하는 플러그인임
그래서 vscode 플러그인들이 coc 버전으로 존재하고, Language Server 설정도 json으로 함
TS로 작성되어 있고, nodejs에서 돌아감
하는 일은:
- LSP 연결
- 자동완성
- 언어 인텔리센스 (diagnostics)
- inlay-hint (코드 중간에 type hint나 parameter 이름 뜨는거)
- 포매팅
- 스니펫
기타 등등
- 포맷터/린터 연결
- 디버거 연결 (DAP는 지원 안한다고 아는데, 디버거 플러그인은 몇개 있네)
- coc 플러그인 매니저 (vscode처럼 Language Server를 그대로 사용하지 않고, 플러그인으로 감싸서 씀)
Neovim이 LSP를 공식 지원하기 한참 전에 나온 플러그인이고,
보다싶이 단순 LSP 지원 말고도 여러가지 많음. LSP만 지원하는 플러그인으론 vim-lsp 같은 애들이 있음
vim은 LSP를 지원하지 않으니 필요하고,
neovim은 없어도 웬만한 기능은 내장으로 대체 가능함
Neovim lua 생태계와 차이점
- 하나가 전부 다 하고 있음 (설치 및 설정이 간편함)
- 이미 존재하는 vscode용 js 플러그인에 대응하는 버전을 많이 갖고 있음
이정도가 coc.nvim을 쓸 이유일듯
동시에 단점이기도 한게, neovim 내장 LSP 기능을 쓰지 않다보니 다른 neovim 플러그인과 연동이 안될 수 있고,
nodejs위에서 돌아가니까 성능 이슈도 생김
어제 소개했던 omnifunc는 어디까지나 vim에 내장되어있는 패턴 기반 자동완성 기능임
꼭 vim을 사용해야 하는 경우는 대개 서버에 직접 접속해서 편집하는 경우고, 그럴때 외부 의존성 없이 사용 가능한 내장 omnifunc가 유용한거임
———
시험 하루 전이라 오늘은 여기까지
내일은 neovim에서 nvim-lspconfig 없이 language server 실행하는 방법을 알아보자
coc.nvim의 기능을 플러그인으로, 그리고 플러그인 없이 구현하는 방법을 살펴볼거임
질문이나 피드백은 언제나 환영
- dc official App
lunar vim 같은 패키지라고 해야하나 이런건 어떰?
그런 설정 대신 되어있는 config 같은 애들은 distro라 부름 “새로운걸 배우고 싶지 않고, 그냥 당장 쓸만한 에디터를 내놔”라면 LazyVim 같은것도 나쁘지 않고, “Neovim을 배우고, 이해하고 싶다”라면 비추. 후자의 경우는 kickstart.nvim이라는 템플릿이 괜찮음. 레딧에서도 가장 많이들 추천하는 방식이고 그리고 lunarvim은 이제 unmaintained 상태일꺼임 - dc App
보닌 kickstart 쓰는데 거의 필요한 것만 깔려있어서 건드릴 게 적더라
kickstart는 읽어보고 이해하고 뜯어고치라고 만들어놓은거라 진짜 최소한의 필수 플러그인들만 깔려있지 크게 수정할 생각이 없다면 LazyVim 깔고 기능 대부분 꺼놓고 써도 괜찮을거임. 그렇게 무겁지도 않고 - dc App
님 해피해킹 씀??
집에 해피해킹 배열 하나 맞춰놓고, 요즘은 오쏘리니어 스플릿 키보드를 써보는 중. 돌아가면서 쓰고 있음 - dc App
요즘 시대에 vim이나 coc을 다룰 이유가..? 뭐 회사에서 써서 ide를 통일해야 되는거면 모를까 일반인이 본인용으로 쓸땐 그냥 가장 최신, 가장 좋은거 쓰는게 맞다고 생각함
그 요즘, 근 3년 Neovim이 스오플 설문조사 기준 가장 사랑받는 에디터 1위 유지중임 (사용률은 vscode가 1위) 가장 최신, 가장 좋은걸로 neovim을 선택하는 사람이 점점 증가하는 추세고 - dc App
Neovim을 쓰지 vim이나 coc을 안 쓴다는 얘기였음 내가 착각하게 말했네
이제 에디터는 진짜 개인 취향 맞춰서 쓰다보니 자기 마음대로 쓰면 되는데, 관심 갖는 사람들이 늘어나고 있길래 다뤄보고 있음 - dc App
Neovim도 다룰꺼임. 어제 누가 coc 관련해서 물어봤길래 잠깐 다뤄본거 사실 나도 vim은 안쓴지 꽤 돼서 Neovim 위주로만 쓰게 될 것 같음 - dc App
vim추