포스트

LazyVim Trouble — 코드 문제와 목록 탐색

LazyVim의 현행 Trouble 키맵으로 Diagnostics·Quickfix·Location List와 LSP Symbols·References를 탐색하는 방법

LazyVim Trouble — 코드 문제와 목록 탐색

개요

LazyVim은 Trouble 플러그인으로 Diagnostics, Quickfix List, Location List, Todo Comments와 LSP 결과를 통합해 보여준다. 현행 기본 키맵은 문제 목록을 <leader>x, 코드 탐색 목록을 <leader>c 아래에 나눈다. Todo는 Trouble 키맵 <leader>xt/<leader>xT와 picker 키맵 <leader>st/<leader>sT를 모두 제공한다.

키맵 요약

동작설명
<leader>xxDiagnostics워크스페이스 전체 진단 결과
<leader>xXBuffer Diagnostics현재 버퍼의 진단 결과만
<leader>xLLocation List현재 윈도우의 location list
<leader>xQQuickfix List전역 quickfix list
<leader>csSymbols현재 문서의 LSP 심볼 목록
<leader>cSLSPreferences/definitions 등 LSP 결과
<leader>xtTodoTrouble로 TODO/FIX/FIXME/HACK 등 검색
<leader>xTTodo/Fix/FixmeTrouble로 TODO/FIX/FIXME만 검색

picker로 같은 항목을 검색하려면 <leader>st/<leader>sT를 쓴다.

핵심 개념 비교

Diagnostics

LSP(Language Server Protocol)가 코드를 분석해서 제공하는 에러, 경고, 힌트 목록이다.

  • 소스: LSP 서버 (tsserver, pyright, jdtls 등)
  • 범위: 워크스페이스 전체 또는 버퍼 단위
  • 예시: 타입 불일치, 미사용 변수, import 누락
1
2
error: Type 'string' is not assignable to type 'number'.  [ts(2322)]
warn:  'foo' is declared but its value is never read.     [ts(6133)]

Quickfix List

Vim이 전역적으로 관리하는 에러/결과 목록이다. :make, :grep, :vimgrep 등의 명령 결과가 여기에 쌓인다.

  • 소스: 빌드 에러, grep 결과, LSP 출력 등
  • 범위: 전역 (Vim 인스턴스당 하나)
  • 관련 명령: :copen, :cnext, :cprev
1
2
:vimgrep /TODO/ **/*.lua    " 결과가 quickfix list에 들어감
:copen                       " quickfix 창 열기

Location List

Quickfix와 구조는 같지만 윈도우 단위로 관리된다. 각 윈도우가 독립적인 location list를 가진다.

  • 소스: :lmake, :lgrep, :lvimgrep
  • 범위: 윈도우 로컬 (윈도우마다 별도)
  • 관련 명령: :lopen, :lnext, :lprev
1
2
Quickfix List  →  전역 1개   →  :copen / :cnext / :cprev
Location List  →  윈도우별   →  :lopen / :lnext / :lprev

Todo Comments

코드에 작성된 TODO, FIX, FIXME, HACK, NOTE 등의 주석을 수집해서 보여준다. todo-comments.nvim 플러그인이 담당한다.

1
2
3
-- TODO: 이 로직 리팩토링 필요
-- FIXME: 엣지 케이스 처리 안 됨
-- HACK: 임시 우회, 다음 스프린트에 제거

Trouble 플러그인의 역할

위 4가지는 각각 다른 소스에서 오지만, Trouble이 통합 UI로 묶어준다.

1
2
3
4
5
6
┌─────────────────────────────────┐
│           Trouble UI            │
├─────────┬───────────┬───────────┤
│  LSP    │  Vim      │  Plugin   │
│  Diag   │  QF / Loc │  Todo     │
└─────────┴───────────┴───────────┘
  • 일관된 인터페이스로 탐색 (같은 키로 이동, 접기/펼치기)
  • 파일별 그룹핑, 미리보기, 자동 갱신 지원
  • 문제 목록은 <leader>x, 코드 구조·LSP 목록은 <leader>c로 접근

진단 메시지·LSP 로그·:messages실제로 열어 확인하는 방법(<leader>cd, :LspLog, :messages)은 LazyVim Diagnostics 로그/메시지 확인법에 정리했습니다. 이 글은 Trouble 키맵·개념, 저 글은 로그 확인 절차입니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.