My build of nnn with minor changes
 
 
 
 
 
 

29 lines
884 B

  1. #!/usr/bin/env sh
  2. # Description: Show diff of 2 directories or multiple files in vimdiff
  3. #
  4. # Shell: POSIX compliant
  5. # Author: Arun Prakash Jana
  6. selection=~/.config/nnn/.selection
  7. if [ -s $selection ]; then
  8. arr=$(tr '\0' '\n' < "$selection")
  9. if [ "$(echo "$arr" | wc -l)" -gt 1 ]; then
  10. f1="$(echo "$arr" | sed -n '1p')"
  11. f2="$(echo "$arr" | sed -n '2p')"
  12. if [ -d "$f1" ] && [ -d "$f2" ]; then
  13. dir1=$(mktemp "${TMPDIR:-/tmp}"/nnn-$(basename "$f1").XXXXXXXX)
  14. dir2=$(mktemp "${TMPDIR:-/tmp}"/nnn-$(basename "$f2").XXXXXXXX)
  15. ls -A1 "$f1" > "$dir1"
  16. ls -A1 "$f2" > "$dir2"
  17. vimdiff "$dir1" "$dir2"
  18. rm "$dir1" "$dir2"
  19. else
  20. cat $selection | xargs -0 vimdiff
  21. fi
  22. else
  23. echo "needs at least 2 files or directories selected for comparison"
  24. fi
  25. fi