본문 바로가기
목차
utils

vimwiki/vimwiki (neovim의 init.lua로 설정)

by ds31x 2026. 1. 14.
728x90
반응형

Neovim + vim-plug 환경을 기반으로 작성함.

https://github.com/vimwiki/vimwiki

Vimwiki

Vimwiki는 Vim/Neovim 안에서 동작하는 개인 위키(Wiki) 시스템 임.

  • 마크다운 파일을 링크로 연결하고, 일기·목록·태그·검색을 제공하여
  • Obsidian + Notion + Zettelkasten을 Vim 방식으로 구현한 도구 임.

Vimwiki = “Vim을 파일 기반 위키로 바꾸는 플러그인”

1. Vimwiki의 핵심 개념

개념 의미
Wiki 하나의 디렉토리 = 하나의 위키
Page .md 파일 하나
Link [[PageName]]
Index 위키의 홈 페이지
Diary 날짜 기반 자동 노트
Backlink 어떤 문서가 나를 링크하는지
  • 모든 것은 일반 파일(.md) 임 (단순 text)
  • git, grep, ripgrep, fd, fzf와 완벽히 호환됨.

2. vim-plug로 Vimwiki 설치

init.lua 또는 vimrc에 추가:

vim.cmd("call plug#begin('" .. plugged .. "')")

vim.cmd("Plug 'junegunn/vim-plug'")
vim.cmd("Plug 'vimwiki/vimwiki'")

vim.cmd("call plug#end()")

 

또는 다음의 형태도 가능함.

vim.cmd [[
Plug 'vimwiki/vimwiki'
]]

 

Neovim에서 다음 명령어로 설치:

:PlugInstall


3. 위키 디렉토리 설정

Vimwiki는 여러 개의 위키를 동시에 관리할 수 있음.

 

예시:

  • 공개 위키: GitHub Pages
  • 개인 위키: Google Drive

WSL의 경우엔 Linux에서도 Google Drive를 사용가능하며 좋은 선택임.

vim.g.vimwiki_list = {
  {
    path = "~/git/ds31x.github.io/_wiki",
    ext = ".md",
    diary_rel_path = ".",
  },
  -- {
  --   path = "~/gdrive/wiki",
  --   ext = ".md",
  --   diary_rel_path = ".",
  -- },
}

vim.g.vimwiki_conceallevel = 0

4. 위키 열기

다음을 통해 index 파일을 열 수 있음.

:VimwikiIndex

 

또는 단축키를 init.lua에 다음과 같이 설정 가능:

vim.g.maplocalleader = "\\"

vim.keymap.set(
  "n",                           -- normal mode
  "<localleader>ww",             -- 키
  "<Plug>VimwikiIndex",          -- 대상
  { silent = true }
)

 

vimrc에서의 설정은 다음과 같음.

let maplocalleader = "\\"

nmap <LocalLeader>ww <Plug>VimwikiIndex

 

이 파일은 vimwiki_list에 지정된 경로의 index.md임:
(앞서의 예제 기반으로)

~/git/ds31x.github.io/_wiki/index.md

이 파일이 위키의 홈 에 해당함.


5. 링크와 페이지 만들기

index.md에:

# My Wiki

* [[Linux]]
* [[DeepLearning]]
* [[WSL]]
  1. 커서 [[Linux]] 위에서 Enter를 누르면
  2. Linux.md 파일 자동 생성됨고 이동함.

사실 특정 단어(공백문자 없어야 함) 위에 normal 모드에서 cursor를 넣고 엔터를 치면 [[ ]]으로 둘러싸임.

이후 다시 enter를 누르면 해당하는 마크다운 파일이 자동 생성되고 이동함.


6. 페이지 간 링크

Linux.md 파일을 다음과 같이 만들 수 있음.

# Linux

* [[Kernel]]
* [[Shell]]
* [[Package Manager]]

이는 전형적인 위키 구조 를 만들게 됨.


7. 뒤로 가기 / 링크 탐색

기능
Enter 링크 열기
Backspace 이전 문서
Tab 링크 완성
:VimwikiBacklinks 나를 링크한 문서 목록

8. Diary 기능

다음의 명령어로 Diary 리스트를 만들 수 있음.

:VimwikiDiaryIndex

 

다음의 명령어로 Diary를 만들어 냄.

:VimwikiMakeDiaryNote

 

위의 결과는 다음과 같음:

2026-01-14.md
  • 매일 학습 로그, 연구 노트, 개발 로그에 적합함

9. TODO / 체크리스트 기능

* [ ] Implement U-Net
* [X] Read TLS paper
* [ ] Write proposal

 

커서 위에서:

<C-Space>
  • Check Toggle

10. 검색

:VimwikiSearch CNN
  • 모든 위키 문서에서 CNN 포함된 파일 검색

11. Vimwiki가 강력한 이유

Vimwiki는 노트 앱이 아니라 파일 시스템 기반 지식 그래프 를 만들어냄.

Notion / Obsidian Vimwiki
앱 의존 plain text
DB 저장 Git 가능
UI 중심 키보드 중심
Export 필요 이미 파일

git, markdown, vim, grep, ripgrep, fzf를 쓰는 사용자에게는
Vimwiki가 가장 강력한 개인 위키를 생성가능함.


12. 추천 워크플로우 (연구자 스타일)

index.md
 ├─ Research/
 │   ├─ U-Net.md
 │   ├─ TLS.md
 │   └─ OralCancer.md
 ├─ Lectures/
 ├─ Diary/
 └─ Ideas/

각 문서는 서로 [[링크]]로 연결됨 : 지식 그래프 또는 위키 의 구축이 가능함.


같이보면 좋은 자료들

https://johngrib.github.io/wiki/vimwiki/

 

Vimwiki 사용법

로컬에서 Vim으로 관리하는 나만의 위키

johngrib.github.io

https://juneyr.dev/vimwiki

 

vim-wiki 새 머신에서 세팅하는 법

왜 vimwiki인가? vim이라고 하면 굉장히 어려워보이고, 나에게는 아직도 굉장히 어렵다. 그럼에도 서버 개발자로 길을 시작한 이상 vim은 넘어야할 산이었다. 언제까지 마우스를 만지작하며 GUI…

juneyr.dev

https://johngrib.github.io/wiki/my-wiki/#%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%82%AD%EC%A0%9C%ED%95%9C%EB%8B%A4

 

Vimwiki + Jekyll + Github.io로 나만의 위키를 만들자

마음에 드는 무료 위키가 없어서 만들어보았다

johngrib.github.io


https://vimwiki.github.io/

 

Vimwiki by vimwiki

Vimwiki is a personal wiki for Vim – interlinked, plain text files written in a markup language With Vimwiki you can organize notes and ideas and quickly create links between them manage todo-lists write a diary Features three markup syntaxes supported:

vimwiki.github.io


 

728x90

'utils' 카테고리의 다른 글

[vim] buffer 와 window  (0) 2026.01.24
johngrib의 vimwiki + github.io 를 설치하기  (0) 2026.01.14
vim-startify (neovim의 init.lua로 설정)  (0) 2026.01.14
vim-plug 설치하기 (neovim의 init.lua로 설정)  (0) 2026.01.13
wget - Web Get  (0) 2026.01.10