-#alias grep='grep --color=tty -d skip'
-
-alias cp='cp -i'                          # confirm before overwriting something
-alias df='df -h'                          # human-readable sizes
-alias free='free -m'                      # show sizes in MB
-
+alias cp='cp -i --reflink=auto'  # interactive + auto CoW
+alias df='df -h'                 # human-readable sizes
+du() { /usr/bin/du -h ${@} | sort -h }
+alias free='free -m'             # show sizes in MB
+
+# run vim or drop file in parent vim instance if inside vim terminal
+function vim {
+    if [[ -z "${VIM_TERMINAL}" ]]; then
+        # Not in VIM_TERMINAL, simply run vim with all arguments
+        command vim "$@"
+        return
+    fi
+
+    for f in "$@"; do
+        if [[ "${f:0:1}" == "-" ]]; then
+            echo "Running in Vim's terminal, not accepting options!" >&2
+            return 1
+        fi
+    done
+    for f in "$@"; do
+        # drop the file onto the running vim instance
+        # see :h terminal-communication
+        echo -e "\e]51;[\"drop\", \"$f\"]\a"
+    done
+}