6세 딸「아빠, 프로젝트 폴더를 찾는데 몇 시간 걸릴까?」【ghq+fzf+zsh】
5867 단어 신인 프로그래머 응원GitGitHubZshfzf
소개
딸(6세)「아빠, 지금 나를 위한 블로그 만들고 있나요?」
딸「블로그는 어떤 식으로 만드는 거야?」
와이「코드라고 하는 것을 바탕으로 움직이는 거야」
와이「잠깐 기다려줘.지금 홈디렉토리야…
와이「확실히 projects/myproject01
같은 이름 했을까…
와이「cd projects/myproject01
...어라, 없구나」
와이 "ls 해 보자."(포치
$ ls
. .. myproj
myproj1 myproj001 myproject1
myproj2 myproject2 myproject3
yabai-proj sugoi-project
와이(… 빌어 먹을 같은 구조하고 있는 얀)
와이「미안. 딸, 좀 기다려줘」
딸「방도 더러운 데다, 디렉토리도 정리되어 있지 않아」
어떻게 할까
ghq 와 fzf(Fuzzy Finder)를 사용하면 필요한 프로젝트로 순식간에 이동할 수 있습니다. 자신의 환경이라면 이렇게 작동합니다.
ghq란?
GitHub 등에서 호스팅되는 리포지토리를 복제할 때 디렉터리를 지정하여 리포지토리 관리를 단순화하는 도구입니다.
$ ghq get https://github.com/motemen/ghq
clone https://github.com/motemen/ghq -> /Users/amachi/src/github.com/motemen/ghq
git clone https://github.com/motemen/ghq /Users/amachi/src/github.com/motemen/ghq
git clone
대신에 ghq get
로 실행하면, 현재 디렉토리에 관계없이, 지정된 룰로 git clone
할 수 있는 것을 알 수 있습니다.
fzf란?
fzf(Fuzzy Finder)는 인터랙티브하고 증분적인 검색 필터 도구입니다.
명령줄에서 fzf 명령을 전달하고 검색을 수행하면 해당 결과를 대화식으로 반환합니다. 간단히 말하면, Google의 검색 기능과 비슷한 움직임을 커맨드 라인에서 할 수 있습니다.
배포 준비
mac이면 homebrew를 통해 설치할 수 있습니다.
$ brew install ghq fzf
설치 후, ghq에서 어디를 원점의 디렉토리로 할지 git의 설정 파일을 추가합니다.
$ git config --global ghq.root $HOME/src
↓
$ less ~/.gitconfig
--- 追加された部分 ---
[ghq]
root = /Users/amachi/src
--------------------
ghq, fzf 결합
먼저 ghq list
에서 ghq root
아래에 있는 프로젝트 목록을 검색할 수 있습니다. 여기에서 fzf로 증분을 검색할 수 있습니다.
또한 fzf에서는 --preview
옵션으로, 오른쪽 절반의 화면을 미리보기에 이용할 수 있으므로, 여기에 프로젝트를 선택하는데 편리한 정보를 표시해 갑니다.
지금까지 시도한 것은 아래의 3 패턴이지만, 자신은 3. プロジェクトルートのファイルリスト
를 좋아합니다.
preview : README 파일
ghq list | fzf --preview "bat --color=always --style=header,grid --line-range :80 $(ghq root)/{}/README.*"
preview : git log 정보
ghq list | fzf --preview "git --git-dir $(ghq root)/{}/.git log --date=short --pretty=format:'-%C(yellow)%d%Creset %s %Cgreen(%cd) %C(bold blue)<%an>%Creset' --color"
preview : 프로젝트 루트 파일 목록
ghq list | fzf --preview "ls -laTp $(ghq root)/{} | tail -n+4 | awk '{print \$9\"/\"\$6\"/\"\$7 \" \" \$10}'"
더욱 사용하기 쉽다 : zsh의 키 바인딩
또한 zsh의 키 바인딩에 등록하여 프로젝트를 선택한 후 프로젝트 바로 아래로 이동할 수 있습니다.
다음과 같은 경우 Ctrl+]
를 누르면 프로젝트 선택 화면이 열립니다.
function ghq-fzf() {
local src=$(ghq list | fzf --preview "ls -laTp $(ghq root)/{} | tail -n+4 | awk '{print \$9\"/\"\$6\"/\"\$7 \" \" \$10}'")
if [ -n "$src" ]; then
BUFFER="cd $(ghq root)/$src"
zle accept-line
fi
zle -R -c
}
zle -N ghq-fzf
bindkey '^]' ghq-fzf
요약
딸「아빠, @ 야메타로 씨같은 기사로 하는 일찍 포기했네」
와이「그 형식으로 정리한다는 것은 힘들겠지」
딸「그리고, 김으로 만들었다 tomoyamachi로 채우는 모험 달력 …
딸「첫날부터 쉬었지...」
와이「첫날이 일요일인 것은 힘들었구나」
딸「…」
Reference
이 문제에 관하여(6세 딸「아빠, 프로젝트 폴더를 찾는데 몇 시간 걸릴까?」【ghq+fzf+zsh】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tomoyamachi/items/e51d2906a5bb24cf1684
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ ls
. .. myproj
myproj1 myproj001 myproject1
myproj2 myproject2 myproject3
yabai-proj sugoi-project
ghq 와 fzf(Fuzzy Finder)를 사용하면 필요한 프로젝트로 순식간에 이동할 수 있습니다. 자신의 환경이라면 이렇게 작동합니다.
ghq란?
GitHub 등에서 호스팅되는 리포지토리를 복제할 때 디렉터리를 지정하여 리포지토리 관리를 단순화하는 도구입니다.
$ ghq get https://github.com/motemen/ghq
clone https://github.com/motemen/ghq -> /Users/amachi/src/github.com/motemen/ghq
git clone https://github.com/motemen/ghq /Users/amachi/src/github.com/motemen/ghq
git clone
대신에 ghq get
로 실행하면, 현재 디렉토리에 관계없이, 지정된 룰로 git clone
할 수 있는 것을 알 수 있습니다.fzf란?
fzf(Fuzzy Finder)는 인터랙티브하고 증분적인 검색 필터 도구입니다.
명령줄에서 fzf 명령을 전달하고 검색을 수행하면 해당 결과를 대화식으로 반환합니다. 간단히 말하면, Google의 검색 기능과 비슷한 움직임을 커맨드 라인에서 할 수 있습니다.
배포 준비
mac이면 homebrew를 통해 설치할 수 있습니다.
$ brew install ghq fzf
설치 후, ghq에서 어디를 원점의 디렉토리로 할지 git의 설정 파일을 추가합니다.
$ git config --global ghq.root $HOME/src
↓
$ less ~/.gitconfig
--- 追加された部分 ---
[ghq]
root = /Users/amachi/src
--------------------
ghq, fzf 결합
먼저 ghq list
에서 ghq root
아래에 있는 프로젝트 목록을 검색할 수 있습니다. 여기에서 fzf로 증분을 검색할 수 있습니다.
또한 fzf에서는 --preview
옵션으로, 오른쪽 절반의 화면을 미리보기에 이용할 수 있으므로, 여기에 프로젝트를 선택하는데 편리한 정보를 표시해 갑니다.
지금까지 시도한 것은 아래의 3 패턴이지만, 자신은 3. プロジェクトルートのファイルリスト
를 좋아합니다.
preview : README 파일
ghq list | fzf --preview "bat --color=always --style=header,grid --line-range :80 $(ghq root)/{}/README.*"
preview : git log 정보
ghq list | fzf --preview "git --git-dir $(ghq root)/{}/.git log --date=short --pretty=format:'-%C(yellow)%d%Creset %s %Cgreen(%cd) %C(bold blue)<%an>%Creset' --color"
preview : 프로젝트 루트 파일 목록
ghq list | fzf --preview "ls -laTp $(ghq root)/{} | tail -n+4 | awk '{print \$9\"/\"\$6\"/\"\$7 \" \" \$10}'"
더욱 사용하기 쉽다 : zsh의 키 바인딩
또한 zsh의 키 바인딩에 등록하여 프로젝트를 선택한 후 프로젝트 바로 아래로 이동할 수 있습니다.
다음과 같은 경우 Ctrl+]
를 누르면 프로젝트 선택 화면이 열립니다.
function ghq-fzf() {
local src=$(ghq list | fzf --preview "ls -laTp $(ghq root)/{} | tail -n+4 | awk '{print \$9\"/\"\$6\"/\"\$7 \" \" \$10}'")
if [ -n "$src" ]; then
BUFFER="cd $(ghq root)/$src"
zle accept-line
fi
zle -R -c
}
zle -N ghq-fzf
bindkey '^]' ghq-fzf
요약
딸「아빠, @ 야메타로 씨같은 기사로 하는 일찍 포기했네」
와이「그 형식으로 정리한다는 것은 힘들겠지」
딸「그리고, 김으로 만들었다 tomoyamachi로 채우는 모험 달력 …
딸「첫날부터 쉬었지...」
와이「첫날이 일요일인 것은 힘들었구나」
딸「…」
Reference
이 문제에 관하여(6세 딸「아빠, 프로젝트 폴더를 찾는데 몇 시간 걸릴까?」【ghq+fzf+zsh】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tomoyamachi/items/e51d2906a5bb24cf1684
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ brew install ghq fzf
$ git config --global ghq.root $HOME/src
↓
$ less ~/.gitconfig
--- 追加された部分 ---
[ghq]
root = /Users/amachi/src
--------------------
먼저
ghq list
에서 ghq root
아래에 있는 프로젝트 목록을 검색할 수 있습니다. 여기에서 fzf로 증분을 검색할 수 있습니다.또한 fzf에서는
--preview
옵션으로, 오른쪽 절반의 화면을 미리보기에 이용할 수 있으므로, 여기에 프로젝트를 선택하는데 편리한 정보를 표시해 갑니다.지금까지 시도한 것은 아래의 3 패턴이지만, 자신은
3. プロジェクトルートのファイルリスト
를 좋아합니다.preview : README 파일
ghq list | fzf --preview "bat --color=always --style=header,grid --line-range :80 $(ghq root)/{}/README.*"
preview : git log 정보
ghq list | fzf --preview "git --git-dir $(ghq root)/{}/.git log --date=short --pretty=format:'-%C(yellow)%d%Creset %s %Cgreen(%cd) %C(bold blue)<%an>%Creset' --color"
preview : 프로젝트 루트 파일 목록
ghq list | fzf --preview "ls -laTp $(ghq root)/{} | tail -n+4 | awk '{print \$9\"/\"\$6\"/\"\$7 \" \" \$10}'"
더욱 사용하기 쉽다 : zsh의 키 바인딩
또한 zsh의 키 바인딩에 등록하여 프로젝트를 선택한 후 프로젝트 바로 아래로 이동할 수 있습니다.
다음과 같은 경우 Ctrl+]
를 누르면 프로젝트 선택 화면이 열립니다.
function ghq-fzf() {
local src=$(ghq list | fzf --preview "ls -laTp $(ghq root)/{} | tail -n+4 | awk '{print \$9\"/\"\$6\"/\"\$7 \" \" \$10}'")
if [ -n "$src" ]; then
BUFFER="cd $(ghq root)/$src"
zle accept-line
fi
zle -R -c
}
zle -N ghq-fzf
bindkey '^]' ghq-fzf
요약
딸「아빠, @ 야메타로 씨같은 기사로 하는 일찍 포기했네」
와이「그 형식으로 정리한다는 것은 힘들겠지」
딸「그리고, 김으로 만들었다 tomoyamachi로 채우는 모험 달력 …
딸「첫날부터 쉬었지...」
와이「첫날이 일요일인 것은 힘들었구나」
딸「…」
Reference
이 문제에 관하여(6세 딸「아빠, 프로젝트 폴더를 찾는데 몇 시간 걸릴까?」【ghq+fzf+zsh】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tomoyamachi/items/e51d2906a5bb24cf1684
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
function ghq-fzf() {
local src=$(ghq list | fzf --preview "ls -laTp $(ghq root)/{} | tail -n+4 | awk '{print \$9\"/\"\$6\"/\"\$7 \" \" \$10}'")
if [ -n "$src" ]; then
BUFFER="cd $(ghq root)/$src"
zle accept-line
fi
zle -R -c
}
zle -N ghq-fzf
bindkey '^]' ghq-fzf
딸「아빠, @ 야메타로 씨같은 기사로 하는 일찍 포기했네」
와이「그 형식으로 정리한다는 것은 힘들겠지」
딸「그리고, 김으로 만들었다 tomoyamachi로 채우는 모험 달력 …
딸「첫날부터 쉬었지...」
와이「첫날이 일요일인 것은 힘들었구나」
딸「…」
Reference
이 문제에 관하여(6세 딸「아빠, 프로젝트 폴더를 찾는데 몇 시간 걸릴까?」【ghq+fzf+zsh】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tomoyamachi/items/e51d2906a5bb24cf1684텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)