Raimondi

Untitled

Mar 10th, 2012
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. " Automatically open buffer when shortest partial tab expands to unique name
  2. " Barry Arthur, Mar 10 2012
  3.  
  4. function! Buffalo(...)
  5.   "echom 1
  6.   let cmdline = getcmdline()
  7.   if cmdline !~ '\C^b\%[uffer]'
  8.     "echom 2
  9.     return ' '
  10.   endif
  11.   if !a:0
  12.     call g:bl.update()
  13.     call feedkeys("\<C-G>")
  14.     "echom 3
  15.     return ' '
  16.   endif
  17.   let char = getchar()
  18.   if char !~ '\d\+'
  19.     call feedkeys(char)
  20.     "echom 4
  21.     return ''
  22.   endif
  23.   let char = nr2char(char)
  24.   let partial = matchstr(cmdline, '^\a\+ \zs.*').char
  25.   let bl = g:bl.filter('v:val["name"] =~ "' . partial . '"')
  26.   if len(bl.buffers) == 1
  27.     "echom 5
  28.     return char."\<CR>"
  29.   else
  30.     "echom 6
  31.     call feedkeys(char."\<C-D>\<C-G>")
  32.     return ""
  33.   endif
  34. endfunction
  35.  
  36. cnore <expr> <C-G> Buffalo(1)
  37. cnoremap <expr> <Space> Buffalo()
Advertisement
Add Comment
Please, Sign In to add comment