콘텐츠로 이동

Yazi

비동기 I/O, 이미지 미리보기, 플러그인 시스템, 멀티 탭 지원을 갖춘 Rust로 작성된 초고속 터미널 파일 관리자.

명령어설명
brew install yazi ffmpegthumbnailer unar jq poppler fd ripgrep fzf zoxide imagemagickmacOS에서 모든 미리보기 의존성과 함께 전체 설치
brew install yazimacOS에서 최소 설치
cargo install --locked yazi-fm yazi-clicrates.io에서 설치
pacman -S yazi ffmpegthumbnailer unarchiver jq poppler fd ripgrep fzf zoxideArch Linux에서 전체 설치
scoop install yaziWindows에서 Scoop으로 설치
winget install sxyazi.yaziWindows에서 winget으로 설치
nix-env -i yaziNixOS에서 설치
snap install yazi --classicUbuntu에서 Snap으로 설치
명령어설명
yazi현재 디렉토리에서 Yazi 실행
yazi /path/to/dir특정 디렉토리에서 Yazi 열기
yazi --version설치된 버전 표시
ya --versionCLI 도우미 버전 표시
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한 페이지 아래로 스크롤
명령어설명
zzoxide로 디렉토리 점프
Zzoxide로 점프 (대화형 fzf)
-이전 디렉토리로 이동
Ctrl + o탐색 히스토리에서 뒤로
Ctrl + i탐색 히스토리에서 앞으로
명령어설명
o기본 프로그램으로 파일 열기
O대화형으로 파일 열기 (프로그램 선택)
Enter파일 열기 또는 디렉토리 진입
qYazi 종료
Qcwd-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파일 필터 (일치하는 것만 표시)
sfd로 파일 검색 (재귀적)
Sripgrep으로 파일 내용 검색
: 다음 명령 입력명령 모드 열기
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.luaLua 초기화 스크립트 (플러그인)
# ~/.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           # 오류 시 재시도

사용자 정의 키 바인딩 (keymap.toml)

섹션 제목: “사용자 정의 키 바인딩 (keymap.toml)”
# ~/.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 -ipackage.toml의 모든 플러그인 설치
ya pack -u설치된 모든 플러그인 업데이트
ya pack -l설치된 플러그인 목록
플러그인설명
yazi-rs/plugins:full-border창 전체 테두리
yazi-rs/plugins:gitGit 상태 표시기
yazi-rs/plugins:chmod파일 권한 변경
yazi-rs/plugins:max-preview미리보기 창 최대화
yazi-rs/plugins:jump-to-charVim 스타일 문자 점프
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()
  1. 모든 미리보기 의존성 설치 — ffmpegthumbnailer, poppler, unar, jq, fd, ripgrep, imagemagick을 설치하여 완전한 미리보기 경험을 얻으세요. 없으면 많은 파일 유형이 원시 텍스트로 표시됩니다.

  2. 셸 래퍼 사용y 함수 래퍼를 설정하여 Yazi 종료 시 마지막 디렉토리로 cd하면 단순한 뷰어가 아닌 진정한 탐색 도구가 됩니다.

  3. 디렉토리 북마크 추가keymap.toml에서 자주 사용하는 디렉토리에 대한 사용자 정의 키 바인딩을 설정하여 (g d로 다운로드, g p로 프로젝트) 즉시 이동하세요.

  4. zoxide 통합 활성화 — zoxide가 설치되면 Yazi에서 z를 누르면 수동 탐색 없이 이전에 방문한 디렉토리로 퍼지 점프할 수 있습니다.

  5. 다중 위치 작업에 탭 사용 — 여러 디렉토리에서 작업할 때 t를 눌러 새 탭을 열고 1-9로 즉시 전환하세요.

  6. 열 비율 사용자 정의yazi.toml에서 ratio = [1, 4, 3]을 조정하여 상위 목록, 현재 디렉토리, 미리보기 창의 균형을 화면 크기에 맞게 설정하세요.

  7. git 플러그인 설치yazi-rs/plugins:git 플러그인은 파일 옆에 git 상태 표시기를 보여주어 수정, 스테이징, 추적되지 않는 파일을 쉽게 확인할 수 있습니다.

  8. 대량 작업에 비주얼 모드 사용V를 눌러 비주얼 모드에 진입하고 j/k로 선택을 확장한 다음 y/x/d로 일괄 복사/잘라내기/삭제하세요.

  9. 테마 사용자 정의 — 터미널 테마와 일치하는 색상으로 theme.toml을 사용자 정의하여 일관된 외관을 만드세요. 파일 유형별로 다른 색상을 설정하여 빠른 시각적 식별이 가능합니다.

  10. 내용 검색 사용S를 눌러 ripgrep으로 파일 내용을 검색하세요 — 대화형 파일 선택기가 내장된 grep -r과 같습니다.