aboutsummaryrefslogtreecommitdiff
path: root/files/.config/tmux/scripts/search
diff options
context:
space:
mode:
Diffstat (limited to 'files/.config/tmux/scripts/search')
-rwxr-xr-xfiles/.config/tmux/scripts/search35
1 files changed, 35 insertions, 0 deletions
diff --git a/files/.config/tmux/scripts/search b/files/.config/tmux/scripts/search
new file mode 100755
index 0000000..027f789
--- /dev/null
+++ b/files/.config/tmux/scripts/search
@@ -0,0 +1,35 @@
+#!/bin/bash
+# From https://github.com/toupeira/dotfiles/blob/main/config/tmux/scripts/search
+
+set -euo pipefail
+
+search() {
+ tmux send-keys -X search-backward "$1"
+}
+
+search_string() {
+ tmux send-keys "?"
+}
+
+search_path() {
+ # pattern from copycat https://github.com/tmux-plugins/tmux-copycat/blob/d7f7e6c1de0bc0d6915f4beea5be6a8a42045c09/copycat.tmux#L21
+ # "(^|^\.|[[:space:]]|[[:space:]]\.|[[:space:]]\.\.|^\.\.)[[:alnum:]~_-]*/[][[:alnum:]_.#$%&+=/@-]*"
+ path='[-_.[:alnum:]]'
+ search "~?(/$path+|$path+/|$path*\.$path+)+$path*(:[0-9]+)*"
+}
+
+search_interesting() {
+ urls='(https?://|git@|git://|ssh://|ftp://|file:///)[[:alnum:]?=%/_.:,;~@!#$&()*+-]*'
+ emails='[-_\.[:alnum:]]+@[-_\.[:alnum:]]+'
+ hashes='\b(([0-9a-f]{7,40}|[[:alnum:]]{52}|[0-9a-f]{64})(\.{2,3})?)+\b'
+ ips='[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}'
+
+ search "($urls|$emails|$hashes|$ips)"
+}
+
+main() {
+ tmux copy-mode
+ "search_${1:-string}"
+}
+
+main "$@"