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

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]]
- 커서
[[Linux]]위에서Enter를 누르면 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
vim-wiki 새 머신에서 세팅하는 법
왜 vimwiki인가? vim이라고 하면 굉장히 어려워보이고, 나에게는 아직도 굉장히 어렵다. 그럼에도 서버 개발자로 길을 시작한 이상 vim은 넘어야할 산이었다. 언제까지 마우스를 만지작하며 GUI…
juneyr.dev
Vimwiki + Jekyll + Github.io로 나만의 위키를 만들자
마음에 드는 무료 위키가 없어서 만들어보았다
johngrib.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
'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 |