Neovim은 Vim의 확장성과 유지 관리성을 개선하기 위해 노력하는 Vim의 포크입니다. 포크의 일부 기능에는 내장된 언어 서버 프로토콜 (Language Server Protocol, 줄여서 LSP) 지원, 비동기 I/O에 대한 지원, luaJIT 언어 인터프리터를 사용한 Lua 스크립팅에 대한 지원이 포함됩니다. 이 프로젝트는 자유 소프트웨어이고 그 소스 코드는 GitHub에서 사용할 수 있습니다.
Neovim은 Vim과 같은 구성 구문을 사용합니다 (vim9script를 사용하지 않는 한); 따라서 옵션 세부 사항에는 약간의 차이가 있지만 같은 구성 파일을 두 편집기에서 사용할 수 있습니다. Neovim에 추가된 기능을 사용하지 않는다면, Neovim은 Vim의 거의 모든 기능과 호환됩니다.
Neovim 프로젝트는 멀티스레딩을 지원하는 Vim 패치가 거부된 후 2014년에 시작되었습니다. Neovim은 2014년 3월에 성공적인 자금 조달을 통해 최소 한 명의 정규 개발자를 지원했습니다.
Neovim의 기능을 활용하는 여러 프런트엔드가 개발 중입니다.
2021년 7월 2일 Neovim 0.5 릴리스를 통해 LSP, Tree-sitter, 및 VimL 대신 Lua로 작성된 구성 스크립트에 대한 지원을 포함하여 보다 완전한 Lua 지원에 대한 기본 지원을 얻었습니다.
Installation
데비안 저장소에서 설치할 수 있습니다:
- sudo apt install neovim
또는 개발자가 제공하는 우분투 PPA에서 정보를 얻을 수 있습니다.
최신 버전이 필요한 이유는 개발이 활발히 진행되고 있어서 간혹은 최신 버전의 특색을 필요할 수 있기 때문입니다.
Configurations
개발자가 아닌 입장에서 편집기를 세밀히 설정할 필요는 없지만, 리눅스에서는 간혹 다른 사람이 만든 코드를 고칠 필요성이 생길 수 있습니다. Vim과 마찬가지로 Vim 파생 편집기도 여전히 설정이 쉽지 않게 느껴집니다. 따라서 가능한 이미 설정된 파일을 가져와서 오류를 고쳐서 설정하고자 합니다.
처음으로 참고한 설정은 다음의 내용에서 얻은 파일입니다:
이 파일은 PlugInstall을 통해 설정을 완료한 후에, 터미널에서 실행해서 오류 메시지를 보고 적절히 수정할 수 있습니다.
좀 더 최근 설정은 다음의 내용에서 확인할 수 있습니다. 이것을 위해 우분투 PPA에서 제공하는 패키지 제작 정보로 0.10.0 패키지를 만들어서 사용할 수 있습니다:
위 소개 글의 저자가 공개한 설정을 가져와서 사용할 수 있습니다. 처음에는 마찬가지로 터미널에서 실행해서 오류 메시지를 보고 적절히 수정할 수 있습니다:
Lunar vim
위의 두 번째 설정이 최근에 사용하는 기능을 가지고 있고, 이를 간단한 방법으로 설정을 도와주는 프로그램입니다. 아마도 이 설정이 비교적 쉽기 때문에 일반 사용자는 이 설정을 사용할 필요가 있습니다:
- https://velog.io/@mythos/Linux-Lunar-Vim-설치
- https://www.lunarvim.org/docs/installation (위 기사의 원본 문서)
Prerequisites
- sudo apt install neovim git make python npm nodejs cargo
- sudo apt install -y gcc g++ # nvim-treesitter에 필요한 패키지
Nerd font가 필요하고 Starship에서 사용하는 D2Coding Nerd Font를 사용할 수 있습니다.
Installation
현재 안정 버전 0.9에서 설치할 때,
- LV_BRANCH='release-1.3/neovim-0.9' bash <(curl -s https://raw.githubusercontent.com/LunarVim/LunarVim/release-1.3/neovim-0.9/utils/installer/install.sh)
현재 neovim nightly (버전 0.10.0)에서 설치할 때,
- bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/install.sh)
Update LunarVim
- Inside LunarVim :LvimUpdate
- From the command-line lvim +LvimUpdate +q
Update the plugins
- Inside LunarVim :LvimSyncCorePlugins
Uninstall
- bash ~/.local/share/lunarvim/lvim/utils/installer/uninstall.sh
또는
- bash <(curl -s https://raw.githubusercontent.com/lunarvim/lunarvim/master/utils/installer/uninstall.sh)
Keybinds overview
Troubleshootings
lua 설정 중 일부 수정
위에서 가져온 설정 중에 VonHeikemen 설정에서 ~/.config/nvim/init.lua에서 일부 추가적인 설정을 진행할 수 있습니다: 예를 들어
- vim.cmd('set number')
- vim.opt.guifont = {"D2CodingLigature Nerd Font Mono:h14" }