vd.sh
· 764 B · Bash
原始檔案
#!/usr/bin/env zsh
# Use fzf and open file in text editor
vd() {
# folder, default to current directory
# depth, default to 1
local dir=${1:-.}
local depth=${2:-1}
local selected_file
while true; do
selected_file=$(fzf --reverse --border --preview "if [ -d {} ]; then echo 'Folder: {}\nenter to cd'; else bat --style=plain --color=always {} ; fi" --preview-window=up:50%:wrap < <(find "$dir" -maxdepth "$depth"))
# cd to folder or open in editor
if [[ -n $selected_file ]]; then
if [[ -d $selected_file ]]; then
dir="$selected_file"
else
echo "$selected_file" | xargs "$EDITOR"
fi
else
break
fi
done
}
| 1 | #!/usr/bin/env zsh |
| 2 | |
| 3 | # Use fzf and open file in text editor |
| 4 | |
| 5 | vd() { |
| 6 | # folder, default to current directory |
| 7 | # depth, default to 1 |
| 8 | local dir=${1:-.} |
| 9 | local depth=${2:-1} |
| 10 | local selected_file |
| 11 | |
| 12 | while true; do |
| 13 | selected_file=$(fzf --reverse --border --preview "if [ -d {} ]; then echo 'Folder: {}\nenter to cd'; else bat --style=plain --color=always {} ; fi" --preview-window=up:50%:wrap < <(find "$dir" -maxdepth "$depth")) |
| 14 | |
| 15 | |
| 16 | # cd to folder or open in editor |
| 17 | if [[ -n $selected_file ]]; then |
| 18 | if [[ -d $selected_file ]]; then |
| 19 | dir="$selected_file" |
| 20 | else |
| 21 | echo "$selected_file" | xargs "$EDITOR" |
| 22 | fi |
| 23 | else |
| 24 | break |
| 25 | fi |
| 26 | done |
| 27 | |
| 28 | } |