summaryrefslogtreecommitdiff
path: root/fedora/.local/bin/restartvim
diff options
context:
space:
mode:
Diffstat (limited to 'fedora/.local/bin/restartvim')
-rwxr-xr-xfedora/.local/bin/restartvim25
1 files changed, 25 insertions, 0 deletions
diff --git a/fedora/.local/bin/restartvim b/fedora/.local/bin/restartvim
new file mode 100755
index 0000000..3c63f8b
--- /dev/null
+++ b/fedora/.local/bin/restartvim
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+set -e
+
+# Set new line and tab for word splitting
+IFS="
+ "
+
+# Check if the script is running inside a tmux session
+if [ -z "$TMUX" ]; then
+ echo "This script must be run from inside a tmux session."
+ exit 1
+fi
+
+# Get the current tmux pane ID
+tmux_pane=$(tmux display-message -p '#D')
+
+# Send Escape, :wq, and Enter to Vim in the tmux pane
+tmux send-keys -t "$tmux_pane" Escape C-m ':wq' C-m
+
+# Wait to ensure Vim exits
+sleep 0.5
+
+# Detach the script from Vim and wait a bit to ensure Vim exits
+(nohup sh -c "sleep 0.5; tmux send-keys -t \"$tmux_pane\" 'vim -c \"execute \\\"edit \\\" . v:oldfiles[0] | normal '\''0\"' C-m" >/dev/null 2>&1 &)