configuring-neovim

LazyVim 기반 Neovim 구성에서 Nix 경계, 플러그인 경계, 입력기 관련 운영 포인트를 다룬다.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "configuring-neovim" with this command: npx skills add greenheadhq/nixos-config/greenheadhq-nixos-config-configuring-neovim

Neovim (LazyVim) 설정

목적과 범위

LazyVim 기반 Neovim 구성에서 Nix 경계, 플러그인 경계, 입력기 관련 운영 포인트를 다룬다.

아키텍처

Hybrid 방식: Nix가 바이너리/외부 도구 관리, lazy.nvim이 플러그인 관리.

  • Mason 비활성화: LSP/포매터/린터는 extraPackages 로 Nix가 설치

  • lazy.nvim: 런타임에 플러그인 다운로드 및 관리

  • mkOutOfStoreSymlink: ~/.config/nvim → repo의 files/nvim/ 심볼릭 링크 (양방향 수정 가능)

빠른 참조

파일 구조

modules/shared/programs/neovim/ ├── default.nix # Nix 설정 (extraPackages, 심볼릭 링크) └── files/nvim/ # → ~/.config/nvim ├── init.lua # 진입점 (require("config.lazy")) ├── stylua.toml # Lua 포매터 (2-space indent) ├── lazy-lock.json # 플러그인 버전 잠금 (자동 생성, 커밋 대상) ├── lazyvim.json # LazyVim extras 추적 (자동 관리) └── lua/ ├── config/ │ ├── lazy.lua # lazy.nvim 부트스트랩 + extras 목록 │ ├── options.lua # Vim 옵션 │ ├── keymaps.lua # 커스텀 키맵 (jk→Esc) │ └── autocmds.lua # 모바일 화면 감지, FocusGained 한글 IM 전환 └── plugins/ ├── disabled.lua # Mason (mason-org/), mini.surround (nvim-mini/), tokyonight.nvim, indent-blankline.nvim, neo-tree.nvim 비활성화 ├── colorscheme.lua # Catppuccin Mocha ├── lsp.lua # 추가 LSP (cssls, html) ├── treesitter.lua # 파서 목록 ├── editor.lua # nvim-surround, auto-save, treesitter-context, flash.nvim, vim-abolish, snacks.nvim, im-select ├── lint.lua # markdownlint-cli2 설정 └── ui.lua # bufferline, lualine, noice

extraPackages 요약

Nix extraPackages 로 관리하는 도구 카테고리:

  • LSP: lua-language-server, nil, vtsls, tailwindcss-language-server, yaml-language-server, vscode-langservers-extracted, markdown-oxide

  • 포매터: prettier, stylua, nixfmt

  • 린터: statix, markdownlint-cli2

  • 빌드: tree-sitter, gcc (Linux 전용), nodejs

ripgrep , fd , fzf 는 libraries/packages.nix 에서, lazygit 은 Home Manager (programs.lazygit.enable = true )로 설치됨 — 중복 추가 금지

핵심 절차

  • modules/shared/programs/neovim/default.nix 에서 런타임 도구(extraPackages )를 선언한다.

  • files/nvim/lua/plugins/*.lua 에서 LazyVim 플러그인 동작을 조정한다.

  • Mason 비활성화 원칙을 유지하고 LSP/formatter/linters는 Nix 패키지로 관리한다.

  • 변경 후 Neovim을 재시작해 LSP attach, tree-sitter, im-select 동작을 확인한다.

제약사항

  • programs.neovim 에 plugins /initLua /extraConfig 추가 금지 (심볼릭 링크 충돌)

  • DAP 디버깅 미지원 (Mason 비활성화로 js-debug-adapter 미설치)

  • default.nix 함수 시그니처에 nixosConfigPath 명시 필수

  • extraPackages에 C 컴파일러(gcc 등) 추가 시 반드시 lib.optionals pkgs.stdenv.isLinux 사용 — macOS에서 LLVM 소스 빌드 방지

  • marksman 사용 금지 → markdown-oxide 사용. marksman은 dotnet→Swift 의존성 체인으로 macOS에서 Swift 소스 빌드 실패

트러블슈팅

빌드 지연, 한국어 입력, tree-sitter 오류는 references/troubleshooting.md를 우선 확인한다.

참조

  • 패키지/extras 상세: references/packages.md

  • 키맵/치트시트: cheat nvim/{topic} 명령으로 조회 — 소스: modules/shared/programs/cheat/cheatsheets/nvim/

  • 한국어 입력: references/korean-input.md

  • 기타 상세: references/details.md

  • 트러블슈팅: references/troubleshooting.md

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

managing-macos

No summary provided by upstream source.

Repository SourceNeeds Review
General

hosting-vaultwarden

No summary provided by upstream source.

Repository SourceNeeds Review
General

automating-hammerspoon

No summary provided by upstream source.

Repository SourceNeeds Review
General

viewing-immich-photo

No summary provided by upstream source.

Repository SourceNeeds Review