| imgur | bash | - | Upload an image to imgur (from [imgur-screenshot](https://github.com/jomo/imgur-screenshot)) |
| ipinfo | sh | curl, whois | Fetch external IP address and whois information |
| kdeconnect | sh | kdeconnect-cli | Send selected files to an Android device |
-| ndiff | sh | vimdiff | Show diff for selection |
+| ndiff | bash | vimdiff | Diff for selection (limited to 2 for directories) |
| nmount | sh | pmount | Toggle mount status of a device as normal user |
| nwal | sh | nitrogen | Set the selected image as wallpaper using nitrogen |
| pastebin | sh | [pastebinit](https://launchpad.net/pastebinit) | Paste contents of current (text) file to paste.ubuntu.com |
-#!/usr/bin/env sh
+#!/usr/bin/env bash
-# Description: Show diff using vimdiff
+# Description: Show diff of 2 directories or multiple files in vimdiff
#
-# Shell: POSIX compliant
+# Shell: Bash
# Author: Arun Prakash Jana
-vimdiff $(cat ~/.config/nnn/.selection | tr '\0' '\n')
+arr=($(cat ~/.config/nnn/.selection | tr '\0' '\n'))
+
+if [ -d "${arr[0]}" ] && [ -d "${arr[1]}" ]; then
+ vimdiff <(cd ${arr[0]} && find | sort) <(cd ${arr[1]} && find | sort)
+else
+ vimdiff "${arr[@]}"
+fi