Lobste.rs 의견들
  • 이 글의 대상 독자가 딱 나인 듯함. fzf를 설치하고 “천재적이네”라고 생각한 뒤, 정작 쓰는 걸 계속 잊어버렸는데 이제는 쓸지도 모르겠음

    • 핵심은 기존 셸 설정, 개인 스크립트, 별칭에 통합하는 것임. fzf를 항상 쓰지만 직접 실행하는 경우는 거의 없음
  • 좋은 글일 수는 있지만, “이제 뭘 하지?”에 답하려는 목표라면 fzf 셸 통합부터 시작하는 건 오히려 더 좁은 독자층만 상대하는 느낌임
    bash에서 ctrl-r을 익숙하게 쓰고 있는데, 그걸 바꾸라고 하는 건 요구 수준이 너무 높음. 기본값을 대체하지 않고 같은 동작을 연습하는 방법부터 알려줬으면 함

    • 실제로는 강화된 기본값에 가까움. ctrl-r을 대체하게 두는 게 맞고, 핵심 매력의 절반은 손에 익은 동작을 유지하면서 기존 흐름과 거의 같은데 더 풍부한 경험을 얻는 데 있음
      ctrl-r은 아마 내가 가장 많이 쓰는 명령이고, fzf는 학습 곡선 없이 바로 들어맞는 개선이었음. ctrl-r로 실행되니 fzf 쓰는 걸 잊지도 않게 됨. 다만 나중에는 Fish shell로 옮겼고, 거기서는 같은 동작이 기본으로 제공됨
  • 설득됐음. 곧 fzf와 셸 통합을 추가할 예정이고, 오늘 하나 배웠음

  • 명령에 넣을 파일을 찾을 때는 ctrl-t 단축키도 쓸 수 있음. 특정 변경에 포함할 파일을 고를 때 git과 함께 자주 쓰고, grep 출력 결과를 걸러서 찾는 범위를 줄이는 데도 써봤음

  • 셸 기록 검색 개선 말고도 fzf를 다음 두 별칭과 함께 써왔음
    alias gbd='git -c color.ui=never branch | fzf | xargs -I {} git branch -D {}'
    주로 풀 리퀘스트를 병합한 뒤 삭제할 로컬 브랜치 목록을 고르는 데 씀. 더 나은 방법이 있을 수 있지만 아직 실패한 적은 없음
    alias awp='export AWS_PROFILE="$(grep -e "\[\(.*\)\]" ~/.aws/config | sed -e "s/\[//g" | sed -e "s/\]//g" | cut -d " " -f 2 | sort -u | fzf)"'
    ~/.aws/config에 있는 값에 따라 AWS_PROFILE을 빠르게 바꿀 수 있게 해줌. 이제 Kubernetes 네임스페이스를 바꾸는 비슷한 별칭도 만들까 생각 중임

  • fzf.vim 플러그인을 쓰면 vim 안에서 fzf를 사용할 수 있음. 파일 열기뿐 아니라 버퍼, 명령 기록, 파일 내용 등을 퍼지 검색할 수 있음

  • fzf의 주된 용도는 선형적인 Git 커밋 기록을 훑고 검색해서 최근에 무엇이 바뀌었는지 파악하는 것임
    내 기본 Git 설정에서 git fzf는 이렇게 정의해둠

    [alias]  
      # Browse commit history with fzf  
      # Inspired by: https://chrismanbrown.gitlab.io/67.html  
      fzf = "!git log --oneline --color=always --decorate=short $@ | \  
          fzf --ansi --reverse --no-sort \  
            --preview 'git show --color=always {1}' \  
            --preview-window '<50(down)' \  
            --bind 'enter:become(git show {1})' #"  
    
  • 뭔가 놓치고 있는 것 같음. 뭘 할지 모르는 상태에서 왜 fzf를 설치하는지 궁금함

  • 최근 관련 글도 있음. 어떤 사용자가 jj용 파일 선택기로 fzf를 쓰고 있음
    https://lobste.rs/s/exlogg/jjj