cd 기록을 저장하고 peco 또는 fzf를 사용하여 디렉토리 이동
4691 단어 ShellScriptfzfZshPeco

무엇을 하고 있는가
auto_cd 또는 일반 cd에서도 디렉토리 이동 중에 해당 디렉토리의 로그를 수집합니다 위의 gif에서는 fzf를 사용합니다. 또한
powered_cd를 c로 별칭합니다.로그에 대해서는, 같은 디렉토리는 2개 이상 모이지 않게 되어 있어, 새로운 순서로부터 서제스트 되기 때문에 별로 낭비는 없다고 생각합니다.
코드
다음을 .zshrc 라든지에 복사해 주면 움직인다고 생각합니다.
.zshrc
function chpwd() {
powered_cd_add_log
}
function powered_cd_add_log() {
local i=0
cat ~/.powered_cd.log | while read line; do
(( i++ ))
if [ i = 30 ]; then
sed -i -e "30,30d" ~/.powered_cd.log
elif [ "$line" = "$PWD" ]; then
sed -i -e "${i},${i}d" ~/.powered_cd.log
fi
done
echo "$PWD" >> ~/.powered_cd.log
}
function powered_cd() {
if [ $# = 0 ]; then
cd $(gtac ~/.powered_cd.log | fzf)
elif [ $# = 1 ]; then
cd $1
else
echo "powered_cd: too many arguments"
fi
}
_powered_cd() {
_files -/
}
compdef _powered_cd powered_cd
[ -e ~/.powered_cd.log ] || touch ~/.powered_cd.log
fzf 곳은 사용하고 있는 것(peco라든지 percol라든지)로 바꾸어 주세요.그리고
gtac는 tac의 GNU 버전으로, OS X에는 기본적으로 gtac가 들어 있기 때문에 gtac로하고 있습니다. 다른 OS의 경우 tac로 설정하십시오.나중에 c 라든지 짧은 명령에 별칭하면 편리합니다 (또는 필수)
.zshrc
alias c="powered_cd"
또한 원래
이 기사에 피쳐된 것입니다. 링크 대상
enhancd이 이 기사의 것보다 고기능입니다. 하지만, zsh 유저라면 누구나 사용하고 있을 것이다 auto_cd 에 로그 추가가 반응하지 않거나, cd - 를 치는 것은 조금 번거로운 (물론 powered_cd 쪽이 치는 것은 귀찮습니다만 별칭 에서 어떻게든 할 수 있다) 1 이 명령을 만들었습니다.enhancd도 `alias c="__enhancd::cd -"로 명령 타입 수를 줄일 수 있습니다 ↩
Reference
이 문제에 관하여(cd 기록을 저장하고 peco 또는 fzf를 사용하여 디렉토리 이동), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/arks22/items/8515a7f4eab37cfbfb17텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)