비동기 I/O, 이미지 미리보기, 플러그인 시스템, 멀티 탭 지원을 갖춘 Rust로 작성된 초고속 터미널 파일 관리자.
| 명령어 | 설명 |
|---|
brew install yazi ffmpegthumbnailer unar jq poppler fd ripgrep fzf zoxide imagemagick | macOS에서 모든 미리보기 의존성과 함께 전체 설치 |
brew install yazi | macOS에서 최소 설치 |
cargo install --locked yazi-fm yazi-cli | crates.io에서 설치 |
pacman -S yazi ffmpegthumbnailer unarchiver jq poppler fd ripgrep fzf zoxide | Arch Linux에서 전체 설치 |
scoop install yazi | Windows에서 Scoop으로 설치 |
winget install sxyazi.yazi | Windows에서 winget으로 설치 |
nix-env -i yazi | NixOS에서 설치 |
snap install yazi --classic | Ubuntu에서 Snap으로 설치 |
| 명령어 | 설명 |
|---|
yazi | 현재 디렉토리에서 Yazi 실행 |
yazi /path/to/dir | 특정 디렉토리에서 Yazi 열기 |
yazi --version | 설치된 버전 표시 |
ya --version | CLI 도우미 버전 표시 |
yazi --cwd-file=/tmp/cwd | 종료 시 마지막 디렉토리 저장 |
# Bash/Zsh — ~/.bashrc 또는 ~/.zshrc에 추가
function y() {
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
yazi "$@" --cwd-file="$tmp"
if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
builtin cd -- "$cwd"
done
rm -f -- "$tmp"
}
# Fish — ~/.config/fish/config.fish에 추가
function y
set tmp (mktemp -t "yazi-cwd.XXXXXX")
yazi $argv --cwd-file="$tmp"
if set cwd (command cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
builtin cd -- "$cwd"
end
rm -f -- "$tmp"
end
| 명령어 | 설명 |
|---|
j 또는 ↓ | 커서 아래로 이동 |
k 또는 ↑ | 커서 위로 이동 |
h 또는 ← | 상위 디렉토리로 이동 |
l 또는 → 또는 Enter | 디렉토리 진입 또는 파일 열기 |
g g | 첫 번째 항목으로 이동 |
G | 마지막 항목으로 이동 |
~ | 홈 디렉토리로 이동 |
Backspace | 상위 디렉토리로 이동 |
Ctrl + u | 반 페이지 위로 스크롤 |
Ctrl + d | 반 페이지 아래로 스크롤 |
Ctrl + b | 한 페이지 위로 스크롤 |
Ctrl + f | 한 페이지 아래로 스크롤 |
| 명령어 | 설명 |
|---|
z | zoxide로 디렉토리 점프 |
Z | zoxide로 점프 (대화형 fzf) |
- | 이전 디렉토리로 이동 |
Ctrl + o | 탐색 히스토리에서 뒤로 |
Ctrl + i | 탐색 히스토리에서 앞으로 |
| 명령어 | 설명 |
|---|
o | 기본 프로그램으로 파일 열기 |
O | 대화형으로 파일 열기 (프로그램 선택) |
Enter | 파일 열기 또는 디렉토리 진입 |
q | Yazi 종료 |
Q | cwd-file 저장 없이 종료 |
| 명령어 | 설명 |
|---|
y | 선택한 파일 복사 (yank) |
x | 선택한 파일 잘라내기 |
p | 복사/잘라내기한 파일 붙여넣기 |
P | 덮어쓰기로 붙여넣기 |
Y 또는 X | 복사/잘라내기 취소 |
- 다음 p | 심볼릭 링크로 붙여넣기 (절대 경로) |
_ 다음 p | 심볼릭 링크로 붙여넣기 (상대 경로) |
Ctrl + p | 하드 링크로 붙여넣기 |
| 명령어 | 설명 |
|---|
a | 새 파일 또는 디렉토리 생성 (후행 / = 디렉토리) |
r | 선택한 파일 이름 변경 |
c | 커서를 끝에 놓고 이름 변경 |
d | 선택한 파일 휴지통으로 이동 |
D | 선택한 파일 영구 삭제 |
. | 숨김 파일 표시 전환 |
파일 및 디렉토리 생성:
a myfile.txt → 새 파일 생성
a mydir/ → 새 디렉토리 생성 (후행 슬래시)
a path/to/file → 중첩 구조 생성
일괄 이름 변경:
여러 파일 선택 → r → $EDITOR 열림
각 줄 = 하나의 파일명, 편집 후 저장하여 모두 이름 변경
| 명령어 | 설명 |
|---|
Space | 현재 파일 선택 전환 |
V | 비주얼 (다중 선택) 모드 진입 |
Ctrl + a | 모든 파일 선택 |
Ctrl + r | 선택 반전 |
Escape | 선택 해제 |
| 명령어 | 설명 |
|---|
m | 현재 디렉토리를 북마크로 저장 |
' | 북마크로 점프 |
" | 북마크 삭제 |
| 명령어 | 설명 |
|---|
t | 현재 디렉토리에서 새 탭 생성 |
Ctrl + c | 현재 탭 닫기 |
1 - 9 | 번호로 탭 전환 |
[ | 이전 탭으로 전환 |
] | 다음 탭으로 전환 |
{ | 이전 탭과 교체 |
} | 다음 탭과 교체 |
| 명령어 | 설명 |
|---|
/ | 현재 디렉토리에서 파일 검색 |
? | 역방향 파일 검색 |
n | 다음 검색 결과로 이동 |
N | 이전 검색 결과로 이동 |
| 명령어 | 설명 |
|---|
f | 파일 필터 (일치하는 것만 표시) |
s | fd로 파일 검색 (재귀적) |
S | ripgrep으로 파일 내용 검색 |
: 다음 명령 입력 | 명령 모드 열기 |
fd를 사용한 파일 검색 ('s' 키):
이름 패턴으로 파일을 재귀적으로 찾기
내부적으로 fd를 사용하여 빠른 검색
결과가 선택기에 표시 — Enter로 이동
ripgrep을 사용한 내용 검색 ('S' 키):
파일 내용을 재귀적으로 검색
빠른 텍스트 검색을 위해 ripgrep 사용
결과에 파일 + 일치하는 줄 표시
| 명령어 | 설명 |
|---|
| 미리보기 창에 파일 내용 표시 | 지원되는 유형에 대해 자동 적용 |
Tab | 미리보기 창 표시 전환 |
Ctrl + Shift + = | 미리보기 창 너비 증가 |
Ctrl + Shift + - | 미리보기 창 너비 감소 |
| 유형 | 요구 사항 |
|---|
| 텍스트 파일 | 구문 강조 내장 |
| 이미지 (PNG, JPG, GIF) | Kitty, iTerm2, 또는 Sixel 프로토콜 |
| SVG 파일 | ImageMagick |
| PDF 문서 | Poppler (pdftoppm) |
| 비디오 썸네일 | ffmpegthumbnailer |
| 아카이브 (zip, tar 등) | unar 또는 7z |
| Markdown | 내장 렌더링 |
| JSON/YAML | 내장 포맷팅 |
| 디렉토리 | 내장 목록 |
이미지 미리보기 프로토콜 (자동 감지):
Kitty — Kitty 터미널 (최고 품질)
iTerm2 — iTerm2, WezTerm, Mintty
Sixel — 다수의 터미널 (foot, mlterm 등)
X11/Wayland — ueberzugpp 사용 (대체)
yazi.toml에서 수동 설정:
[preview]
image_quality = 75
| 명령어 | 설명 |
|---|
,m | 수정 시간순 정렬 |
,M | 수정 시간순 정렬 (역순) |
,c | 생성 시간순 정렬 |
,C | 생성 시간순 정렬 (역순) |
,e | 확장자순 정렬 |
,E | 확장자순 정렬 (역순) |
,s | 크기순 정렬 |
,S | 크기순 정렬 (역순) |
,n | 이름순 정렬 (자연) |
,N | 이름순 정렬 (역순) |
,r | 무작위 정렬 |
w | 작업 관리자 전환 |
T | 레이아웃 전환 (1/2/3 열) |
| 파일 | 용도 |
|---|
~/.config/yazi/yazi.toml | 기본 설정 |
~/.config/yazi/keymap.toml | 사용자 정의 키 바인딩 |
~/.config/yazi/theme.toml | 색상 테마 |
~/.config/yazi/init.lua | Lua 초기화 스크립트 (플러그인) |
# ~/.config/yazi/yazi.toml
[manager]
ratio = [1, 4, 3] # 열 비율 (상위, 현재, 미리보기)
sort_by = "natural" # natural, modified, created, extension, size
sort_sensitive = false # 대소문자 구분 정렬
sort_reverse = false # 역순 정렬
sort_dir_first = true # 디렉토리를 파일보다 먼저
linemode = "size" # none, size, permissions, mtime
show_hidden = false # 숨김 파일 표시
show_symlink = true # 심볼릭 링크 대상 표시
[preview]
tab_size = 2 # 미리보기에서 탭 너비
max_width = 600 # 최대 미리보기 너비
max_height = 900 # 최대 미리보기 높이
image_quality = 75 # 이미지 미리보기 JPEG 품질
sixel_fraction = 15 # Sixel 해상도 비율
[opener]
edit = [
{ run = '${EDITOR:-vi} "$@"', block = true, for = "unix" },
{ run = 'code "%*"', orphan = true, for = "windows" },
]
[tasks]
micro_workers = 10 # 소규모 파일 작업
macro_workers = 25 # 대규모 파일 작업
bizarre_retry = 5 # 오류 시 재시도
# ~/.config/yazi/keymap.toml
[[manager.prepend_keymap]]
on = ["g", "d"]
run = "cd ~/Downloads"
desc = "다운로드 폴더로 이동"
[[manager.prepend_keymap]]
on = ["g", "p"]
run = "cd ~/projects"
desc = "프로젝트 폴더로 이동"
[[manager.prepend_keymap]]
on = ["g", "c"]
run = "cd ~/.config"
desc = "설정 폴더로 이동"
# 현재 디렉토리에서 터미널 열기
[[manager.prepend_keymap]]
on = ["!"]
run = 'shell "$SHELL" --block'
desc = "여기서 터미널 열기"
# 선택한 파일 압축
[[manager.prepend_keymap]]
on = ["C"]
run = 'shell "zip -r archive.zip $@" --block'
desc = "선택 항목 압축"
# ~/.config/yazi/theme.toml
[filetype]
rules = [
{ name = "*/", fg = "#7aa2f7" }, # 디렉토리
{ mime = "text/*", fg = "#c0caf5" }, # 텍스트 파일
{ mime = "image/*", fg = "#bb9af7" }, # 이미지
{ mime = "video/*", fg = "#e0af68" }, # 비디오
{ mime = "audio/*", fg = "#9ece6a" }, # 오디오
{ name = "*.rs", fg = "#ff9e64" }, # Rust 파일
{ name = "*.py", fg = "#7aa2f7" }, # Python 파일
{ name = "*.md", fg = "#73daca" }, # Markdown
]
| 명령어 | 설명 |
|---|
ya pack -a owner/plugin | 플러그인 설치 |
ya pack -i | package.toml의 모든 플러그인 설치 |
ya pack -u | 설치된 모든 플러그인 업데이트 |
ya pack -l | 설치된 플러그인 목록 |
| 플러그인 | 설명 |
|---|
yazi-rs/plugins:full-border | 창 전체 테두리 |
yazi-rs/plugins:git | Git 상태 표시기 |
yazi-rs/plugins:chmod | 파일 권한 변경 |
yazi-rs/plugins:max-preview | 미리보기 창 최대화 |
yazi-rs/plugins:jump-to-char | Vim 스타일 문자 점프 |
DreamMaoMao/searchjump.yazi | 파일 검색 및 점프 |
# ~/.config/yazi/package.toml
[plugin]
prepend_previewers = [
{ name = "*.md", run = "glow" },
]
# 설치 및 활성화
# ya pack -a yazi-rs/plugins:full-border
# ya pack -a yazi-rs/plugins:git
# ya pack -i
-- ~/.config/yazi/init.lua
-- 설치된 플러그인 활성화
require("full-border"):setup()
require("git"):setup()
-
모든 미리보기 의존성 설치 — ffmpegthumbnailer, poppler, unar, jq, fd, ripgrep, imagemagick을 설치하여 완전한 미리보기 경험을 얻으세요. 없으면 많은 파일 유형이 원시 텍스트로 표시됩니다.
-
셸 래퍼 사용 — y 함수 래퍼를 설정하여 Yazi 종료 시 마지막 디렉토리로 cd하면 단순한 뷰어가 아닌 진정한 탐색 도구가 됩니다.
-
디렉토리 북마크 추가 — keymap.toml에서 자주 사용하는 디렉토리에 대한 사용자 정의 키 바인딩을 설정하여 (g d로 다운로드, g p로 프로젝트) 즉시 이동하세요.
-
zoxide 통합 활성화 — zoxide가 설치되면 Yazi에서 z를 누르면 수동 탐색 없이 이전에 방문한 디렉토리로 퍼지 점프할 수 있습니다.
-
다중 위치 작업에 탭 사용 — 여러 디렉토리에서 작업할 때 t를 눌러 새 탭을 열고 1-9로 즉시 전환하세요.
-
열 비율 사용자 정의 — yazi.toml에서 ratio = [1, 4, 3]을 조정하여 상위 목록, 현재 디렉토리, 미리보기 창의 균형을 화면 크기에 맞게 설정하세요.
-
git 플러그인 설치 — yazi-rs/plugins:git 플러그인은 파일 옆에 git 상태 표시기를 보여주어 수정, 스테이징, 추적되지 않는 파일을 쉽게 확인할 수 있습니다.
-
대량 작업에 비주얼 모드 사용 — V를 눌러 비주얼 모드에 진입하고 j/k로 선택을 확장한 다음 y/x/d로 일괄 복사/잘라내기/삭제하세요.
-
테마 사용자 정의 — 터미널 테마와 일치하는 색상으로 theme.toml을 사용자 정의하여 일관된 외관을 만드세요. 파일 유형별로 다른 색상을 설정하여 빠른 시각적 식별이 가능합니다.
-
내용 검색 사용 — S를 눌러 ripgrep으로 파일 내용을 검색하세요 — 대화형 파일 선택기가 내장된 grep -r과 같습니다.