Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. #!/bin/bash
  2. # A simple script to make fzf a fuzzy-file explorer
  3. # After the program exits, it should be cleared with tput rmcup, otherwise the
  4. # terminal stays in alternate screen mode
  5.  
  6. old_folder=$(pwd)
  7. cur_folder="$old_folder"
  8. tree_depth=1
  9. while true
  10. do
  11. query=$(test "$keep_query" && echo "$query" || echo '')
  12. { read query; read key; read ret; } <<< $(
  13. (echo -e '.\n..'; fd -t d --color=always) \
  14. | fzf --height 100% --no-clear \
  15. --print-query --query="$query" \
  16. --header="${cur_folder/#$HOME/'~'} $query" \
  17. --expect=ctrl-h,ctrl-l,ctrl-alt-m,ctrl-alt-h,ctrl-alt-l \
  18. --expect=f1,f2,f3 \
  19. --preview-window=right:50% \
  20. --preview "tree-git-ignore -L $tree_depth -C {}"
  21. )
  22. code=$?
  23. keep_query=
  24. query=$(test "$query" && echo "$query" || echo "$ret")
  25. clear
  26. echo $code $key $ret
  27. case $code in
  28. 130)
  29. output="$old_folder"
  30. break
  31. ;;
  32. 0|1)
  33. case $key in
  34. ctrl-h)
  35. cd ..
  36. cur_folder=$(pwd)
  37. ;;
  38. ctrl-l)
  39. cd "$ret"
  40. cur_folder=$(pwd)
  41. ;;
  42. alt-enter|ctrl-alt-m)
  43. output="$cur_folder"
  44. break
  45. ;;
  46. ctrl-alt-h)
  47. tree_depth=$((tree_depth - 1 > 0 ? tree_depth - 1 : tree_depth))
  48. keep_query=true
  49. ;;
  50. ctrl-alt-l)
  51. tree_depth=$((tree_depth + 1))
  52. keep_query=true
  53. ;;
  54. f1)
  55. # some ingame help here
  56. ;;
  57. f2)
  58. # custom script to see image in terminal
  59. imgp --no-clear
  60. ;;
  61. f3)
  62. # custom script to open file in remote neovim session
  63. nvrp --no-clear
  64. ;;
  65. *)
  66. cd "$ret"
  67. output=$(pwd)
  68. break
  69. ;;
  70. esac
  71. ;;
  72. *)
  73. output="$old_folder"
  74. break;
  75. ;;
  76. esac
  77. done
  78.  
  79. echo $output
  80. exit $code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement