Tools

Mac에서 Neovim 사용을 위한 기본 설정

kogun82 2024. 12. 4. 23:38

1.Neovim, ripgrip 설치

# neovim 설치 시 최신 버전인 0.10.2 버전으로 설치 
# lazy >= neovim 0.8.0 필수
brew install nvim

# 만일 최신 버전이 설치되지 않는 경우 소스 빌드로 설치
# neovim 소스코드 복사
git clone https://github.com/neovim/neovim.git
cd neovim

# 최신 릴리스로 이동
git checkout stable

# 빌드 및 설치
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install

# 라이브 검색을 위한 패키지 설치
brew install ripgrep

# hack nerd font 설치
# 다운로드 후 운영체제 설치
curl -LO https://github.com/ryanoasis/nerd-fonts/releases/download/v3.0.2/Hack.zip

# nerd font icon cheat sheet
https://www.nerdfonts.com/cheat-sheet

 

2.~/.config 폴더에 nvim 폴더 복사

nvim 폴더 구조
nvim.zip
0.02MB

 

3.복사 후 nvim 명령어로 실행 후 Lazy 기반 플러그인 자동 설치

Lazy 기반 플러그인 설치

 

4.Neovim 플러그인 소개

  • alpha.lua: Neovim의 시작 화면을 꾸미는 플러그인
  • comment.lua: 코드 주석 처리를 간단하게 만들어주는 플러그인
g + c + c 키 조합으로 한줄 주석
v 모드에서 코드 블럭 선택 후 g + c 키 조합으로 주석
  • conform.lua: 코드 포맷팅을 자동화하는 플러그인
 # 필요한 formmater 추가
 
 return {
     "stevearc/conform.nvim",
     event = { "BufReadPre", "BufNewFile" },
     config = function()
         local conform = require("conform")
         conform.setup({
             formatters_by_ft = {
                 lua = { "stylua" },
                 javascript = { { "prettierd", "prettier" } },
                 typescript = { { "prettierd", "prettier" } },
                 javascriptreact = { { "prettierd", "prettier" } },
                 typescriptreact = { { "prettierd", "prettier" } },
         python = { { "iosort", "black" } }
             },
             format_on_save = {
                 timeout_ms = 500,
                 lsp_fallback = true,
             },
         })
     end,
 }
  • gruvbox.lua: 인기 있는 컬러 스킴 플러그인
  • indent-blankline.lua: 코드의 들여쓰기 레벨을 시각적으로 보여주는 플러그인
  • lsp.lua: LSP (Language Server Protocol) 관련 설정을 담당하는 플러그인
# https://github.com/williamboman/mason-lspconfig.nvim
# 필요한 언어 lsd 서버 주소를 github에서 찾아 추가한다.

{
 "williamboman/mason-lspconfig.nvim",
 config = function()
   require('mason-lspconfig').setup({
     ensure_installed = { "lua_ls", "ts_ls", "pyright", "rust_analyzer", "bashls" }
   })
 end
},
shift + k 키 조합으로 code advisor 호출
g + d 키 조합으로 선택 함수 이동
오류, 경고 코드라인에서 space + c + a 키 조합으로 조치

  • lualine.lua: 상태 라인을 사용자 정의할 수 있는 플러그인
  • neo-tree.lua: 파일 탐색기 플러그인
space + e 키 조합으로 왼쪽 파일 탐색기 활성화 또는 비활성화
ctrl + h, ctrl + l 키 조합으로 왼쪽 탑색기와 오른쪽 편집기 이동
  • nvim-autopairss.lua: 괄호와 따옴표 등을 자동으로 닫아주는 플러그인
  • nvim-cmp.lua: 코드 자동 완성 플러그인으로, LSP, 스니펫, 버퍼 등과 통합되어 강력한 코드 완성 기능을 제공
  • nvim-treesitter.lua: 코드 하이라이팅 및 구조 분석을 위한 플러그인
# 코드 하이라이팅 및 구조 분석이 필요한 언어 추가

return {
   "nvim-treesitter/nvim-treesitter",
   build = ":TSUpdate",
   config = function()
       local configs = require("nvim-treesitter.configs")

       configs.setup({
           ensure_installed = { "lua", "javascript", "python", "rust", "bash" },
           sync_install = false,
           highlight = { enable = true },
           indent = { enable = true },
         })
   end
 }
  • nvim-ufo.lua: 코드 폴딩 관련 플러그인
  • telescope.lua: 파일 탐색 및 검색 플러그인
space + f + f 파일 검색
space + f + g 파일 컨텐츠 검색

telescope 화면

 

5.Mason으로 Neovim 필수 패키지 설치 목록

Mason 설치 목록

:Mason 명령어를 이용해서 mason.nvim 호출
이후 필요한 패키지를 검색해서 설치
설치 방법은 필요한 패키지를 선택 후 i 버튼을 이용해서 설치 
설치된 패키지의 버전의 업데이트 방법은 u 버튼을 이용해서 업데이트 설치

 

반응형