aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWenxuan <wenxuangm@gmail.com>2018-04-06 11:01:58 +0800
committerWenxuan <wenxuangm@gmail.com>2018-04-06 11:01:58 +0800
commit13019dcdbefe573d2fdbcc8804135801c38642d7 (patch)
tree9854ea24c16ee12edba74a3ff4e9d23a052cfeaa
downloadfork-tmux-fzf-url-13019dcdbefe573d2fdbcc8804135801c38642d7.tar.gz
fork-tmux-fzf-url-13019dcdbefe573d2fdbcc8804135801c38642d7.tar.bz2
fork-tmux-fzf-url-13019dcdbefe573d2fdbcc8804135801c38642d7.zip
Init commit
-rw-r--r--fzf-url.tmux26
1 files changed, 26 insertions, 0 deletions
diff --git a/fzf-url.tmux b/fzf-url.tmux
new file mode 100644
index 0000000..08f9d73
--- /dev/null
+++ b/fzf-url.tmux
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+
+# $1: option
+# $2: default value
+tmux_get() {
+ local value="$(tmux show -gqv "$1")"
+ [ -n "$value" ] && echo $value || echo $2
+}
+
+# $1: option
+# $2: value
+tmux_set() {
+ tmux set-option -gq "$1" "$2"
+}
+
+url_reg='\b(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]*[-A-Za-z0-9+&@#/%=~_|]'
+fzf_url_cmd="tmux capture-pane -J -p |grep -oE '"$url_reg"' |fzf-tmux"
+if hash xdg-open &>/dev/null; then
+ open_cmd='nohup xdg-open'
+elif hash open &>/dev/null; then
+ open_cmd='open'
+fi
+
+key="$(tmux_get "@fzf-url-bind" "u")"
+
+tmux bind-key "$key" run -b "tmux capture-pane -J -p |grep -oE '"$url_reg"' |sort -u |fzf-tmux | xargs $open_cmd &>/dev/null || true";