]> git.rmz.io Git - dotfiles.git/commitdiff
vim: open files in parent vim instance if running inside vim :term
authorSamir Benmendil <me@rmz.io>
Mon, 18 Jan 2021 00:02:38 +0000 (00:02 +0000)
committerSamir Benmendil <me@rmz.io>
Mon, 18 Jan 2021 00:02:38 +0000 (00:02 +0000)
This could possibly be a file in bin too, I'm not sure yet.

aliases

diff --git a/aliases b/aliases
index 5b306079460336f6a5f74d221fbda6e34807b8af..6fb1ae18bc3ef314a986d2de9fb62b8652636cef 100644 (file)
--- a/aliases
+++ b/aliases
@@ -13,6 +13,26 @@ 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
+}
 alias vi='vim'
 alias svi='sudo -e'
 #alias vp='vim PKGBUILD' # I have a script for that in ~/bin