Lua로 작성된 최소 Neovim 구성
목차
Neovim은 비동기 플러그인 기능을 추가하고 코드 기반을 정리하면서 호환성에 중점을 둔 Vim의 매우 멋진 후속 제품입니다. 여러 번 Sublime Text(2 및 3)와 Atom에 싫증이 났고 SSH를 통해 얼마나 많은 개발을 수행하는지 깨닫고 나면 vim(또는 이 경우 nvim)을 내 IDE로 사용하는 것이 합리적으로 보였습니다. 장점은 본질적으로 다음과 같이 요약됩니다.
그래서 저는 이 저장소를 만들기로 결정했습니다. 여러 버전이 있습니다. CHANGELOG를 확인하세요.
이 구성은 시작점으로 사용되며 내 요구 사항에만 적합합니다. 사용자 정의하려면 6. 사용자 정의로 이동하세요.
mv ~ /.config/nvim ~ /.config/nvim.bak
OS | 길 |
---|---|
리눅스, 맥OS | $XDG_CONFIG_HOME/nvim , ~/.config/nvim |
윈도우(cmd) | %localappdata%nvim |
윈도우(파워셸) | $env:LOCALAPPDATAnvim |
참고 포크의 URL은 다음과 같습니다:
https://github.com/<your_github_username>/neovim-config.git
참고 위의 권장 단계를 따르는 경우(예: 저장소 포크) 아래 명령에서
ntk148v
<your_github_username>
으로 바꾸십시오.
git clone https://github.com/ntk148v/neovim-config.git " ${XDG_CONFIG_HOME :- $HOME / .config} " /nvim
cmd.exe
사용하는 경우:
git clone https://github.com/ntk148v/neovim-config.git " %localappdata%nvim "
powershell.exe
사용하는 경우
git clone https://github.com/ntk148v/neovim-config.git " ${env : LOCALAPPDATA} nvim "
nvim
git pull
사용하여 계속 업데이트해야 합니다. config 아래의 파일은 적절한 시간에 자동으로 로드되므로 해당 파일을 수동으로 요구할 필요가 없습니다.
tree ~ /.config/nvim
├── init.lua
├── lazy-lock.json
└── lua
├── autocmds.lua
├── custom.lua
├── mappings.lua
├── options.lua
├── plugins
│ ├── configs
│ │ ├── cmp.lua
│ │ ├── gitsigns.lua
│ │ ├── lspconfig.lua
│ │ ├── lualine.lua
│ │ ├── luasnip.lua
│ │ ├── mason.lua
│ │ ├── null-ls.lua
│ │ ├── telescope.lua
│ │ ├── tree.lua
│ │ └── treesitter.lua
│ └── init.lua
└── sample_custom.lua
플러그인 | 설명 |
---|---|
게으른.nvim | Neovim을 위한 최신 플러그인 관리자 |
mason.nvim | Neovim이 실행되는 모든 곳에서 실행되는 Neovim용 휴대용 패키지 관리자입니다. LSP 서버, DAP 서버, 린터, 포맷터를 쉽게 설치하고 관리할 수 있습니다. |
nvim-lspconfig | Neovim 내장 언어 서버 클라이언트의 공통 구성 모음 |
gitsigns | Lua/teal로만 구현된 초고속 git 장식 |
nvim-treesitter | Nvim Treesitter 구성 및 추상화 계층 |
nvim-cmp | 자동 완성 플러그인 |
루아스닙 | Lua로 작성된 Neovim용 스니펫 엔진 |
nvim-tree.lua - | Lua로 작성된 파일 탐색기 |
nvim-autopairs | Neovim을 위한 매우 강력한 자동 쌍 |
nvim-웹-디바이콘 | neovim용 vim-web-devicons의 Lua fork |
lualine.nvim | 순수 Lua로 작성된 매우 빠르고 구성하기 쉬운 neovim statusline 플러그인입니다. |
norcalli/nvim-colorizer.lua | 가장 빠른 네오빔 컬러라이저. |
nvim-망원경/telescope.nvim | 찾기, 필터링, 미리보기, 선택. 모든 루아, 항상. |
로제파인 | Neovim의 소호 분위기 |
nvimtools/none-ls.nvim | null-ls.nvim reloaded / Neovim을 언어 서버로 사용하여 Lua를 통해 LSP 진단, 코드 작업 등을 삽입합니다. |
folke/which-key.nvim | 고정되는 키 바인딩을 만듭니다. whichKey는 입력 시 팝업에 사용 가능한 키 바인딩을 표시하여 Neovim 키맵을 기억하는 데 도움이 됩니다. |
기본적으로 다음 LSP 서버가 설치 및 구성됩니다.
또한 nvim-treesitter와 통합되어 풍부한 구문 강조 표시 및 기타 언어 구문 분석 기능을 제공합니다.
귀하의 언어가 지원되지 않는 경우 다음을 따르십시오.
:LspInstall ` <your_language_server> `
:TSInstall ` <language_to_install> `
사용자 정의 파일을 편집하여 더 많은 LSP 서버 및 언어 구문 강조를 추가할 수 있습니다.
이것이 기본 키맵입니다. 다음 단축키에서 <leader>
+` 키는 ``(공백) 문자로 설정되어 있습니다. 확인: keymaps.lua.
지름길 | 방법 | 설명 |
---|---|---|
ㅋㅋ | 끼워 넣다 | kk 로 Esc |
<leader> + r | 정상 | 구성 파일 다시 로드 |
<leader> + s | 정상 | 파일 저장 |
<leader> + q | 정상 | 저장(모든 창 닫기)하고 Neovim을 종료합니다. |
<leader> + n | 정상 | NvimTree 열기 |
<leader> + nr | 정상 | NvimTree 새로 고침 |
<leader> + nf | 정상 | NvimTree에서 파일 찾기 |
<leader> + ff | 정상 | 망원경을 열어 파일을 찾으세요 |
<leader> + fg | 정상 | 실시간 grep을 수행하려면 Telescope를 엽니다. |
<leader> + 페북 | 정상 | Telescope를 열어 버퍼 목록을 확인하세요. |
<leader> + fh | 정상 | 도움말을 보려면 망원경을 여세요. |
<leader> + fo | 정상 | Telescope를 열어 최근에 열린 파일을 표시하세요. |
<leader> + cm | 정상 | Telescope를 열어 git 커밋 목록을 확인하세요. |
<leader> + wh/j/k/l | 정상 | 분할 주위로 이동 |
mm | 정상 | 주석/주석 해제 라인 |
기본 키맵이 많이 있는데 :map
명령을 사용하여 확인할 수 있습니다. 다른 변형도 있습니다:
:nmap
일반 모드 매핑용:vmap
:imap
위 목록은 완전하지 않습니다. Vim에 :help map
입력하면 더 많은 정보를 얻을 수 있습니다.
custom
모듈을 생성하여 이 구성을 사용자 정의할 수 있습니다. 다음 두 가지 방법 중 하나를 선택할 수 있습니다.
${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom.lua
파일을 생성합니다.${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom/
모듈을 생성하십시오.시작점에 대한 샘플 사용자 정의 파일을 확인하세요. 논리는 CyberNvim에서 가져왔습니다. 구성에는 정의된 여러 섹션이 있습니다.
M.setup_sources
는 Null-ls에 연결할 추가 소스를 추가하는 데 사용됩니다. 여기에서 소스 목록을 찾을 수 있습니다. 매개변수 b는 null_ls.buildins의 약자입니다.M.ensure_installed
는 추가 Treesitter 형광펜을 추가하는 데 사용됩니다.M.plugins
는 자신만의 플러그인 정의를 추가하는 곳입니다.M.configs
사용자 구성에서 가장 중요한 섹션입니다. 여기에서 자동 명령을 정의하고, 파일을 요구하거나, 현재 구성을 완전히 포팅할 수 있습니다.M.formatting_servers
는 자동 서식 지정 규칙을 설정하는 데 사용됩니다. 자동 서식 지정 기능을 제공할 언어 서버를 선택해야 합니다. 자유롭게 문제를 제기하거나 끌어오기 요청을 제출하세요. 천만에요!