ae5f399be2c2

Moar. Done for now.
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Fri, 08 Oct 2010 22:10:04 -0400
parents d84608c7bdfe
children 82d190d1da64
branches/tags (none)
files plugin/gundo.vim

Changes

--- a/plugin/gundo.vim	Fri Oct 08 21:33:51 2010 -0400
+++ b/plugin/gundo.vim	Fri Oct 08 22:10:04 2010 -0400
@@ -26,6 +26,9 @@
         exe "vnew __Gundo__"
         wincmd H
         exe "vertical resize " . g:gundo_width
+        nnoremap <script> <silent> <buffer> <CR>  :call <sid>GundoRevert()<CR>
+        nnoremap <script> <silent> <buffer> j     jj0f[hhh
+        nnoremap <script> <silent> <buffer> k     kk0f[hhh
     else
         let existing_gundo_window = bufwinnr(existing_gundo_buffer)
 
@@ -41,12 +44,20 @@
     endif
 endfunction
 
+function! s:GundoRevert()
+    let target_line = matchstr(getline("."), '\v\[[0-9]+\]')
+    let target_num = matchstr(target_line, '\v[0-9]+')
+    let back = bufwinnr(s:gundo_back)
+    exe back . "wincmd w"
+    exe "undo " . target_num
+endfunction
+
 function! s:GundoToggle()
     if expand('%') == "__Gundo__"
         quit
-        exe s:gundo_back . "wincmd w"
+        exe bufwinnr(s:gundo_back) . "wincmd w"
     else
-        let s:gundo_back = winnr()
+        let s:gundo_back = bufnr('')
         GundoRender
     endif
 endfunction
@@ -451,7 +462,7 @@
     except ValueError:
         pass
     i += 1
-    vim.command('%d' % i)
+vim.command('%d' % i)
 
 ENDPYTHON
 endfunction