ファイルを検索して、peco って cd するやつ
Dockerfile
を検索して、peco
に流して、そのフォルダに cd
するものを考えていたんですけれども、find
だと検索対象フォルダを絞らないと検索が遅くて使い物にならないなぁと思っていた矢先。
peco + spotlightで超高速にファイル名検索して開く - Qiita
を発見!これだー!
ということで、spotlight(mdfind)
を使ったやつを書いてみました。
peco-mdfind-cd() {
local FILENAME="$1"
if [ -z "$FILENAME" ] ; then
echo "Usage: peco-mdfind-cd <FILENAME>" >&2
return 1
fi
local DIR=$(mdfind -onlyin ~ -name ${FILENAME} | grep -e "/${FILENAME}$" | peco | head -n 1)
if [ -n "$DIR" ] ; then
DIR=${DIR%/*}
echo "pushd \"$DIR\""
pushd "$DIR"
fi
}
peco-docker-cd() {
peco-mdfind-cd "Dockerfile"
}
peco-vagrant-cd() {
peco-mdfind-cd "Vagrantfile"
}
$ peco-mdfind-cd "Dockerfile"
で、
1. Dockerfile
を検索し、
2. 一覧を peco
に渡し、
3. 選択結果のフォルダに cd
する
という流れです。
ちょっと名前が微妙ですが、alias
を設定するなり、ショートカットキーを設定するなりして下さいませw
追記:
peco-find-cd() {
local FILENAME="$1"
if [ -z "$FILENAME" ] ; then
echo "Usage: peco-find-cd <FILENAME>" >&2
return 1
fi
local DIR=$(find ~ -maxdepth 5 -name ${FILENAME} | peco | head -n 1)
if [ -n "$DIR" ] ; then
DIR=${DIR%/*}
echo "pushd \"$DIR\""
pushd "$DIR"
fi
}
peco-git-cd() {
peco-find-cd '.git'
}
peco-docker-cd() {
peco-find-cd "Dockerfile"
}
peco-vagrant-cd() {
peco-find-cd "Vagrantfile"
}
Author And Source
この問題について(ファイルを検索して、peco って cd するやつ), 我々は、より多くの情報をここで見つけました https://qiita.com/yungsang/items/37b548e7a12be28cf01e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .