From 96151bd07330aee400fb99fd9f8f117bae42c9e5 Mon Sep 17 00:00:00 2001 From: makefu Date: Mon, 30 Dec 2013 03:03:22 +0100 Subject: bridge -> Cancer/\1 --- Cancer/bridge/share/vim/vimfiles/plugin/bridge.vim | 113 +++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 Cancer/bridge/share/vim/vimfiles/plugin/bridge.vim (limited to 'Cancer/bridge/share/vim/vimfiles/plugin/bridge.vim') diff --git a/Cancer/bridge/share/vim/vimfiles/plugin/bridge.vim b/Cancer/bridge/share/vim/vimfiles/plugin/bridge.vim new file mode 100644 index 00000000..91f072d1 --- /dev/null +++ b/Cancer/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 . "\") + endif +endfunction + +nmap :call Bridge_display() +nmap [24^ +nmap :call Bridge_connect() +nmap :call Bridge_disconnect("") +nmap [24$ + +nmap el :call Bridge_paste(getline(".")) +nmap ec m'ya(:call Bridge_paste(getreg('"'))`' +nmap et m'(y%:call Bridge_paste(getreg('"'))`' + +nmap ee :call Bridge_paste(input("paste: ", "")) + +" sugar +nmap ec + +"" visual shell +vmap m'y:call Bridge_paste(getreg('"'))v`' +vmap ee :call Bridge_paste(input("paste: ", "")) +vmap et + + -- cgit v1.2.3