From 08aa5e406a1f7b39182e79ea4eb7fabf7d61eaa3 Mon Sep 17 00:00:00 2001
From: makefu <root@pigstarter.de>
Date: Mon, 30 Dec 2013 14:34:38 +0100
Subject: //Cancer -> //

because that is what painload is all about
---
 bridge/share/vim/vimfiles/plugin/bridge.vim | 113 ++++++++++++++++++++++++++++
 1 file changed, 113 insertions(+)
 create mode 100644 bridge/share/vim/vimfiles/plugin/bridge.vim

(limited to 'bridge/share/vim')

diff --git a/bridge/share/vim/vimfiles/plugin/bridge.vim b/bridge/share/vim/vimfiles/plugin/bridge.vim
new file mode 100644
index 00000000..91f072d1
--- /dev/null
+++ b/bridge/share/vim/vimfiles/plugin/bridge.vim
@@ -0,0 +1,113 @@
+" /vim/bridge.vim
+
+if ! exists('s:bridge_name')
+  let s:bridge_name = ""
+endif
+
+fun! Bridge_complete(A,L,P)
+    let a = strpart(a:A,0,a:P)
+    return split(system("bridge list \"".a.".*\""), "\n")
+endfun
+
+fun! Bridge_status()
+  if s:bridge_name == ""
+    return "Disconnected"
+  else
+    return "Connected to " . s:bridge_name
+  else
+  endif
+endfun
+
+setlocal statusline=%<%f\ \(%{Bridge_status()}\)\ %h%m%r%=%-14.(%l,%c%V%)\ %P\ of\ %L\ \(%.45{getcwd()}\)
+
+fun! Bridge_display()
+  if s:bridge_name == ""
+    echo "Not connected!"
+    return
+  endif
+  let cmd = "bridge attach ".s:bridge_name
+  silent exe "!" . cmd
+  redraw!
+endfun
+
+fun! Bridge_connect()
+  if s:bridge_name == ""
+    let m = "boot new"
+  else
+    let m = s:bridge_name
+  endif
+  let name = input("Connect to [".m."]: ", "", "customlist,Bridge_complete")
+  if name == ""
+    if s:bridge_name != ''
+      " stay connected
+      echo
+      return
+    endif
+    let system = input("Command: ", "")
+    if system == ""
+        echo "Aborted!"
+	return
+    endif
+    let name = input("Session name: ", "")
+    if name == ""
+        echo "Aborted!"
+	return
+    endif
+    TODO_boot_new
+  endif
+  if system("bridge list ".name) == ""
+    echo "No such session: ".name
+    return
+  endif
+  let s:bridge_name = name
+  let s:laststatus = &laststatus
+  let &laststatus = 2
+  echo "Connected to " . s:bridge_name
+endfun
+
+fun! Bridge_disconnect(m)
+  if s:bridge_name == ""
+    echo "Not connected!"
+  else
+    let &laststatus = s:laststatus
+    let m = "Disconnected from ".s:bridge_name
+    if a:m != ""
+      let m .= ": ".a:m
+    endif
+    echo m."!"
+    let s:bridge_name = ""
+  endif
+endfun
+
+function! Bridge_paste( data )
+  if a:data == ''
+    echo "Nothing to send!"
+  else
+    let l:data = a:data
+    if exists("g:bridge_prologue") | let l:data = g:bridge_prologue . l:data | endif
+    if exists("g:bridge_epilogue") | let l:data = l:data . g:bridge_epilogue | endif
+    call system("bridge paste " . s:bridge_name, l:data . "\<cr>")
+  endif
+endfunction
+
+nmap <C-F12> :call Bridge_display()<cr>
+nmap [24^ <C-F12>
+nmap <F12> :call Bridge_connect()<cr>
+nmap <S-F12> :call Bridge_disconnect("")<cr>
+nmap [24$ <S-F12>
+
+nmap <leader>el :call Bridge_paste(getline("."))<cr>
+nmap <leader>ec m'ya(:call Bridge_paste(getreg('"'))<cr>`'
+nmap <leader>et m'(y%:call Bridge_paste(getreg('"'))<cr>`'
+
+nmap <leader>ee :call Bridge_paste(input("paste: ", ""))<cr>
+
+" sugar
+nmap <Return> <leader>ec
+
+"" visual shell
+vmap <return> m'y:call Bridge_paste(getreg('"'))<cr>v`'
+vmap <leader>ee :call Bridge_paste(input("paste: ", ""))<cr>
+vmap <leader>et <return>
+
+
-- 
cgit v1.2.3