aboutsummaryrefslogtreecommitdiff
path: root/archive/dm-recent-edit
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-05-10 22:57:02 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-05-10 22:57:02 +0200
commit3cd9138c9d8fb9be248c75330cca9da47f4d2e8a (patch)
treeb3b677a9c1a474589f45d20953028a987fa73b80 /archive/dm-recent-edit
parent83f7fe4b8402bab171d110703a1b1115efbc9b28 (diff)
downloadbin-3cd9138c9d8fb9be248c75330cca9da47f4d2e8a.tar.gz
bin-3cd9138c9d8fb9be248c75330cca9da47f4d2e8a.zip
added a whole bunch of scripts
Diffstat (limited to 'archive/dm-recent-edit')
-rw-r--r--archive/dm-recent-edit19
1 files changed, 19 insertions, 0 deletions
diff --git a/archive/dm-recent-edit b/archive/dm-recent-edit
new file mode 100644
index 0000000..583094f
--- /dev/null
+++ b/archive/dm-recent-edit
@@ -0,0 +1,19 @@
+#!/usr/bin/env sh
+# Pick a recently-edited file from vim's :oldfiles, open in st -e vim.
+set -eu
+
+VIMINFO="${VIMINFO:-$HOME/.vim/.viminfo}"
+
+file=$(
+ vim -e -c "rviminfo! $VIMINFO" \
+ -c 'redir >> /dev/stdout | silent oldfiles | redir END | qa!' \
+ 2>/dev/null \
+ | sed 's/^[[:space:]]*[0-9]*:[[:space:]]*//' \
+ | sed "s|^~|$HOME|" \
+ | awk 'NF && !seen[$0]++' \
+ | while IFS= read -r f; do [ -f "$f" ] && printf '%s\n' "$f"; done \
+ | dmenu -l 20 -i -p 'recent:'
+) || exit 0
+[ -n "$file" ] || exit 0
+
+exec st -e vim "$file"