[nvim] config 정리

요즘 terminal interface에 엄청난 관심이 생겼습니다.
회사에서 진행하는 업무에서 리눅스 환경을 좀 더 자주 접하게 되었기 때문입니다.

최근에는 아래 썸네일의 영상을 우연히 접하고 난 뒤에 영상의 가이드를 그대로 따라하면서 nvim 설정을 만들어 나가고 있습니다.

환경에 좀더 빨리 익숙해지고자 늘어가는 플러그인과 단축키들을 한 곳에 정리합니다.

나중에 단축키들은 설정이 끝나면 따로 프린트해서 집이랑 사무실 모니터에 붙여둘까 합니다.

플러그인 목록

  • gruvbox : 컬러 테마. 처음에 그대로 따라서 설치했으나 지금은 비활성화.
  • everforest-nvim : 녹색 계열의 컬러 테마. 눈에 편할 것 같아 이걸로 변경.
  • neo-tree : 파일 탐색기. 좌측 패널에 파일을 트리 구조로 보여준다.
  • telescope : 파일 검색기. 파일을 검색하고 열 수 있다.
  • treesitter : syntax parser. syntax highlighting과 indenting을 강화한다.
    • 처음 설치할 때 c 컴파일러가 필요하다. visual studio에서 쓰는 cl도 사용 가능하다. 처음 한 번만 필요.
  • indent-blankline : 들여쓰기를 더 명확하게 보여준다.
  • comment : 주석 처리를 쉽게 해준다.
  • lualine : 상태바를 꾸며준다. 독자적인 테마설정이 있는데, 현 메인테마(everforest)와 맞춰준다.
  • mason : LSP 버전 관리. 플러그인 및 의존성 관리 등
    • mason-lspconfig : mason - lsp간 설정.
    • nvim-lspconfig : neovim - lsp간 설정. 단축키 설정 등
  • nvim-autopairs : 자동 괄호 삽입. 괄호를 열면 자동으로 닫히게 해준다.
  • nvim-ufo : 접기/펼치기 플러그인. 코드를 접고 펼치는 기능을 제공한다.
  • cnoform : 코드 정리 플러그인. 코드를 저장할 때 beautify를 실행한다.
  • cmp : 자동완성 플러그인. LSP를 기반으로 동작한다.
    • 첫 동영상에 소개된 설정은 make 컴파일러를 필요로 해서 윈도우에서 사용이 곤란. moaid의 설정을 사용한다.
  • roslyn.nvim : c# LSP 플러그인. c# 코드를 분석하고 자동완성을 제공한다.
  • toggleterm : 터미널 플러그인. nvim을 벗어나지 않고 터미널을 사용할 수 있다.

단축키

더하기는 함께 누르는 것, 그냥 공백은 연속으로 누르는 것을 의미한다.

단축키 설명 위치
space 리더키 globals.lua
space e 파일 탐색기(neo-tree) 열기/닫기 keymaps.lua
space h 검색 하이라이트 제거(nohlsearch)
ctrl + h , j , k , l 분할 창 이동
(visual mode) < , > indentation 줄이기 / 늘이기
gcc 주석 처리/해제 comment.lua
gc 선택된 라인 주석 처리/해제
space f f 파일 검색 (find_files) telescope.lua
space f g 파일 내 검색 (live_grep)
space f b 버퍼 목록 검색 (buffers)
space f h 도움말 목록 검색 (help_tags)
shift + k LSP hover lsp.lua
g d LSP goto definition (이전 버퍼로 돌아올 땐 Ctrl + 6)
space c a LSP code action
za 접기/펼치기 nvim-ufo.lua
zM 모두 접기
zR 모두 펼치기
ctrl + \ 터미널 띄우기(floating) toggleterm
alt + f1 터미널 띄우기(bottom)
alt + f2 터미널 띄우기(right)
alt + f3 터미널 띄우기(floating)

See also

  • raspberry pi에 neovim 설치. 직접 컴파일 해야 한다. - Link
  • neovim 설정, 플러그인, 컬러테마 공유 포털 - https://dotfyle.com/
  • c# in neovim - Link

troubleshooting

LSP 설치 이슈

  • lua: path상에 lua lsp가 있어야 한다. winget으로 설치해준다.
1
winget install LuaLS.lua-language-server
  • c# : roslyn.nvim를 설치한다. 아직 lsp_config를 정식으로 지원하지 않음. readme에 있는 manual installation을 따라하면 어렵지 않게 설치할 수 있다. omnisharp, csharp_ls는 예전 배포판이고 roslyn이 최신이다.