Windows에서 LazyVim 기반 Neovim을 사용하면서 항상 불만이었던 점은 터미널을 띄우고 nvim을 실행할 때 체감될 정도로 느린 초기 구동 속도였다. 리눅스에서는 즉시 켜지는 반면, Windows에서는 수 초가 걸리는 경우도 흔했다.
원인은 대부분 Windows Defender의 실시간 파일 검사였다. Neovim은 시작 시 수천 개의 Lua 파일과 플러그인 파일을 로드하는데, 이 모든 I/O가 Defender에 의해 실시간 스캔되면서 큰 지연이 발생한다.
아래 설정을 적용한 후, Windows에서도 리눅스 수준으로 즉시 Neovim이 실행되도록 개선되었다.
Add-MpPreference -ExclusionPath "$env:LOCALAPPDATA\nvim"
Add-MpPreference -ExclusionPath "$env:LOCALAPPDATA\nvim-data"
Add-MpPreference -ExclusionPath "$env:LOCALAPPDATA\Temp\nvim" (?)
Add-MpPreference -ExclusionProcess "nvim.exe"
Add-MpPreference -ExclusionProcess "node.cmd"
nvimnvim-dataTemp\nvim (?)nvim.exe 프로세스 제외node.cmd 프로세스 제외| 항목 | 적용 전 | 적용 후 |
|---|---|---|
nvim 최초 실행 | 2~6초 | 0.2~0.4초 |
| LazyVim 로딩 체감 | 버벅임 있음 | 즉시 로딩 |
| LSP 첫 반응 | 지연 있음 | 즉시 반응 |
특히 node.cmd 제외 후에는 LSP, formatter, tree-sitter 업데이트 속도까지 함께 개선되었다.
Windows에서 Neovim이 느렸던 문제는 설정이나 LazyVim 자체 문제가 아니라 100% Windows Defender 실시간 스캔이 원인이었다. 위 5줄 설정만으로:
라는 효과를 얻을 수 있었다.
Windows에서 LazyVim을 쓰고 있는데 시작이 느리다면, 가장 먼저 해야 할 설정이다.