brew install fzf | macOS에 설치 |
apt install fzf | Ubuntu에 설치 |
git clone https://github.com/junegunn/fzf.git ~/.fzf && ~/.fzf/install | git에서 설치 |
fzf | 대화형 파일 찾기 |
find . | fzf | fzf로 파이프 |
ls | fzf | 목록에서 선택 |
cat file | fzf | 파일 내용 검색 |
fzf --preview "cat {}" | 파일 미리보기 |
Ctrl+J / Ctrl+N | 아래로 이동 |
Ctrl+K / Ctrl+P | 위로 이동 |
Enter | 항목 선택 |
Tab | 항목 마크 (다중 선택) |
Shift+Tab | 항목 마크 해제 |
Ctrl+A | 모두 선택 |
Ctrl+D | 모두 선택 해제 |
Ctrl+T | 항목 선택 토글 |
Esc / Ctrl+C | 취소 |
Ctrl+T | 파일 경로 붙여넣기 |
Ctrl+R | 명령 히스토리 검색 |
Alt+C | 디렉토리로 cd |
fzf --height 40% | 높이 제한 |
fzf --reverse | 목록 반전 |
fzf --border | 테두리 표시 |
fzf --border=rounded | 둥근 테두리 |
fzf --margin 1,5% | 여백 설정 |
fzf --padding 1 | 패딩 설정 |
fzf --prompt "Select> " | 커스텀 프롬프트 |
fzf --pointer ">" | 커스텀 포인터 |
fzf --header "Pick a file" | 헤더 추가 |
fzf -m | 다중 선택 모드 |
fzf --no-multi | 단일 선택 |
fzf --select-1 | 하나뿐이면 자동 선택 |
fzf --exit-0 | 일치 없으면 종료 |
fzf -q "query" | 쿼리로 시작 |
fzf -1 | 첫 일치 선택 |
fzf -e | 정확한 일치 |
fzf -i | 대소문자 무시 |
fzf +i | 대소문자 구분 |
fzf --algo=v1 | 더 빠른 알고리즘 |
fzf -n 2 | 2번째 필드만 검색 |
fzf -n 2.. | 2번째 필드부터 검색 |
fzf -d ":" -n 1 | 커스텀 구분자 |
fzf --preview "cat {}" | 파일 내용 미리보기 |
fzf --preview "head -100 {}" | 처음 100줄 미리보기 |
fzf --preview "bat --color=always {}" | bat으로 미리보기 |
fzf --preview-window right:50% | 오른쪽 미리보기 |
fzf --preview-window down:40% | 아래 미리보기 |
fzf --preview-window hidden --bind "?:toggle-preview" | ?로 미리보기 토글 |
fzf --bind "ctrl-a:select-all" | 모두 선택 |
fzf --bind "ctrl-d:deselect-all" | 모두 선택 해제 |
fzf --bind "ctrl-y:execute-silent(echo {} | pbcopy)" | 클립보드에 복사 |
fzf --bind "enter:execute(vim {})" | vim에서 열기 |
fzf --bind "ctrl-o:execute-silent(open {})" | 파일 열기 |
fzf --bind "?:toggle-preview" | 미리보기 토글 |
fzf --bind "ctrl-j:down,ctrl-k:up" | Vim 스타일 탐색 |
vim $(fzf)
# Or with preview
vim $(fzf --preview "bat --color=always {}") cd $(find . -type d | fzf)
# Alias
alias fcd='cd $(find . -type d | fzf)' kill $(ps aux | fzf | awk '{print $2}')
# Or interactive
kill -9 $(ps aux | fzf -m | awk '{print $2}') git checkout $(git branch | fzf)
# With remote branches
git checkout $(git branch -a | fzf | sed 's/remotes\/origin\///') git log --oneline | fzf --preview "git show {1}" docker exec -it $(docker ps | fzf | awk '{print $1}') bash # Search content and open file
fif() {
local file
file=$(rg --files-with-matches --no-messages "$1" | fzf --preview "rg --color=always -n '$1' {}")
if [ -n "$file" ]; then
vim "$file"
fi
} # Use fd instead of find
export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
export FZF_ALT_C_COMMAND='fd --type d --hidden --follow --exclude .git' # .bashrc or .zshrc
export FZF_DEFAULT_OPTS='
--height 40%
--reverse
--border
--preview-window right:50%
--bind ctrl-a:select-all
--bind ctrl-d:deselect-all
--bind ?:toggle-preview
' export FZF_DEFAULT_OPTS=$FZF_DEFAULT_OPTS'
--color=fg:#d0d0d0,bg:#121212,hl:#5f87af
--color=fg+:#d0d0d0,bg+:#262626,hl+:#5fd7ff
--color=info:#afaf87,prompt:#d7005f,pointer:#af5fff
--color=marker:#87ff00,spinner:#af5fff,header:#87afaf
'