본문 바로가기
utils

[vim] vim-plug 이용: nvim-treesitter, gruvbox

by ds31x 2025. 1. 20.

macOS로 전환하고 나서 nvim에 대한 플러그를 제대로 설정을 안해놔서 조금 수정을 했다.

.vimrc 의 설정을 그대로 nvim 에서 불러들이는 방식을 쓰는터라...

 

lua로 갈아타야지 하면서, 여전히 vimscript로만 처리하고 있다. (게으름....)

lua가 정신없이 업데이트되던 시기는 아니라고 하지만, 설정이 자주 바뀌는건 좋아하지 않는 터라.

 

우선 code syntax highlight가 영 안되어서 가독성이 떨어지는 문제만 일단 해결하고 넘어감

nvim-treesittergruvbox
vim-plug로 추가함.

 

 

nvim에서는 Lua 와 packer.vim을 쓰는 게 좋다고 하는데...

제대로 살펴볼 시간이 없네. ㅠㅠ


init.vim

현재의 ~/.config/nvim/init.vim 은 다음과 같음:

" Vim의 런타임 경로를 설정. ~/.vim과 ~/.vim/after 디렉토리를 포함.
set runtimepath^=~/.vim runtimepath+=~/.vim/after
" Vim의 패키지 경로를 런타임 경로와 동일하게 설정.
let &packpath = &runtimepath
" 기존의 .vimrc 파일을 적용시킴 (vim과 호환성).
source ~/.vimrc

" Vim 플러그인 관리자인 vim-plug를 사용하여 플러그인을 관리.
" ~/.config/nvim/init.vim 또는 init.lua 파일에 추가.
call plug#begin('~/.vim/plugged')
" nvim-treesitter 플러그인을 추가. 이는 트리시터 기반의 하이라이팅을 제공.
" 'do': ':TSUpdate'는 플러그인 설치 후 트리시터를 업데이트.
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
" gruvbox 컬러 테마를 추가.
Plug 'morhetz/gruvbox'
call plug#end()

" 배경을 어둡게 설정. 이는 gruvbox 테마와 좋은 궁합임.
set background=dark
" 설정된 테마를 적용.
colorscheme gruvbox

" Lua 코드 블록을 시작합니다. 이는 Neovim에서 Lua 스크립트를 실행할 수 있게 합니다.
lua << EOF
" nvim-treesitter의 설정을 구성합니다.
require'nvim-treesitter.configs'.setup {
  " 트리시터 파서가 설치될 언어 목록을 지정합니다.
  ensure_installed = {"python", "c", "cpp", "markdown"}, -- Python을 포함한 언어 설치
  highlight = {
    " 문법 하이라이팅을 활성화합니다.
    enable = true,              
    " 추가적인 Vim 정규식 하이라이팅은 비활성화합니다.
    additional_vim_regex_highlighting = false,
  },
}
EOF

" 마우스 지원을 활성화.
set mouse=a
" 클립보드를 시스템 클립보드와 동기화.
set clipboard=unnamedplus
" 줄 번호를 표시합니다.
set nu

주요 참고사항:

  • Runtime Path 설정:
    • Vim의 런타임 경로와 패키지 경로를 설정하여
    • 사용자 정의 설정을 포함.
    • runtimepath:
      • vim에서 사용하는 script, plugin 등의 설정 파일들.
      • vim이 시작할 때나 :source 명령으로 로드됨.
    • packpath: (패키지패스)
      • vim 8 이후 도입된 패키지 관리시스템에서 사용됨.
      • pack/*/start 또는 pack/*/opt 밑에 패키지(=plugin)를 로드할 때 이용되는 위치.
      • 패키지들이 놓이는 path를 의미함.
  • vim-plug:
    • 가장 기본적인 Vim 플러그인 관리자를 사용하여
    • nvim-treesittergruvbox 테마를 설치 및 관리.
  • 테마 설정:
    • gruvbox 테마를 적용하고 배경을 어둡게 설정.
  • lua 스크립트 부분
    • lua << EOFEOF 사이는 Lua 스크립트로 작성되는 부분임 : init.lua가 아닌 init.vim에서 쓰려면 이 방법을 써야함.
    • nvim-treesitter 설정:
      • 트리시터를 사용한 하이라이팅을 여러 언어에 대해 설정함.
  • 편집 설정:
    • 마우스 사용,
    • 시스템 클립보드와의 통합,
    • 줄 번호 표시 등의 기능을 활성화.

위의 설정은 패키지 관리시스템을 딱히 이용하고 있지는 않음:
모두 기본적인 vim-plug 만 사용함.

참고사항

  • ^= : 맨앞에 추가.
  • += : 맨뒤에 추가.
  • Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
    • Plug는 뒤에 놓이는 플러그인을 설치하라는 명령어임.
    • {}는 이 설치 task에 추가적인 옵션을 지정함.
      • 'do' 키는 설치 후 실행할 명령어임을 의미.
      • ':TSUpdate' 값은 nvim-treesitter 플러그인의 명령어으로 트리시터 파서를 업데이트하라는 명령어임.

이후, Treesitter 의 실제 강조할 언어들에 대한 파서는 nvim을 실행 후 :TSInstall python 등으로 설치해준다.

  • 최신 버전으로의 업데이트는 :TSUpdate python 과 같은 형태로 해주면 됨: :TSUpdate all을 해주면 설치된 모든 언어파서를 업데이트함.
  • 주의할 점은 TSInstall all은 피할 것: 너무 많은 언어파서가 설치됨.

같이보면 좋은 자료

https://github.com/nvim-treesitter/nvim-treesitter

 

GitHub - nvim-treesitter/nvim-treesitter: Nvim Treesitter configurations and abstraction layer

Nvim Treesitter configurations and abstraction layer - nvim-treesitter/nvim-treesitter

github.com

2024.01.01 - [utils] - [vim] Neovim 설치 : A Project that seeks to extend Vim.

 

[vim] Neovim 설치 : A Project that seeks to extend Vim.

neovim 은 현재 업데이트가 거의 되지 않고 있는 vim 과 호환성을 유지하면서 새로운 기능을 추가하고자 하는 프로젝트의 이름이자, 해당 프로젝트의 결과물임. visualstudio code (vscode)와 쉽게 연동이

ds31x.tistory.com


 

'utils' 카테고리의 다른 글

[vim] 마우스 설정  (0) 2025.01.20
[vscode] gcc 사용한 C/C++ 프로젝트 환경 구축.  (1) 2025.01.19
[summary] vscode  (0) 2025.01.17
[vscode] Debug 사용법 요약: Python + launch.json  (3) 2024.10.09
[Utils] homebrew  (0) 2024.09.08