본문 바로가기
리눅스

Neovim (text editor)

by 다움위키 2024. 2. 5.

NeovimVim의 확장성과 유지 관리성을 개선하기 위해 노력하는 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

위의 두 번째 설정이 최근에 사용하는 기능을 가지고 있고, 이를 간단한 방법으로 설정을 도와주는 프로그램입니다. 아마도 이 설정이 비교적 쉽기 때문에 일반 사용자는 이 설정을 사용할 필요가 있습니다:

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에서 설치할 때,

현재 neovim nightly (버전 0.10.0)에서 설치할 때,

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

또는

Keybinds overview

Troubleshootings

lua 설정 중 일부 수정

위에서 가져온 설정 중에 VonHeikemen 설정에서 ~/.config/nvim/init.lua에서 일부 추가적인 설정을 진행할 수 있습니다: 예를 들어

  • vim.cmd('set number')
  • vim.opt.guifont = {"D2CodingLigature Nerd Font Mono:h14" }