4d81abc7063e

Update plugins.
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Mon, 16 Jan 2012 12:15:40 -0500
parents 029fa7773f34
children 82041852b7bf
branches/tags (none)
files .hgsub .hgsubstate vim/bundle/yankring/doc/yankring.txt vim/bundle/yankring/plugin/yankring.vim zsh/misc.zsh

Changes

--- a/.hgsub	Mon Jan 16 11:28:13 2012 -0500
+++ b/.hgsub	Mon Jan 16 12:15:40 2012 -0500
@@ -28,5 +28,6 @@
 vim/bundle/rainbow-parentheses = [git]git://github.com/kien/rainbow_parentheses.vim.git
 vim/bundle/AnsiEsc.vim = [git]git://github.com/vim-scripts/AnsiEsc.vim.git
 vim/bundle/powerline = [git]git://github.com/Lokaltog/vim-powerline.git
+vim/bundle/yankring = [git]git://github.com/vim-scripts/YankRing.vim.git
 
 keymando/Plugins/abbrev = [git]git://github.com/keymando/abbrev.git
--- a/.hgsubstate	Mon Jan 16 11:28:13 2012 -0500
+++ b/.hgsubstate	Mon Jan 16 12:15:40 2012 -0500
@@ -3,7 +3,7 @@
 d2bb7878622e4c16203acf1c92a0f4bc7ac58003 vim/bundle/AnsiEsc.vim
 a41d5d52c39a31128e969e69acf800b198cb07f9 vim/bundle/ack
 420174fc537ba986a716964db7af0bd189252944 vim/bundle/ctrlp
-cdecdc56f938840cad250aecd58c1901f04c4d1b vim/bundle/easymotion
+667a668e114e9ec0e5d4cbcb0962d835b23614c4 vim/bundle/easymotion
 b4b75ef682da3e946c648d3634ade39d0af49aba vim/bundle/fugitive
 2a78f151df54b53874f0aa6a85cfdad6ead224ed vim/bundle/gundo
 4ef2d418f48d30fed2f7ce00f598d6871a0010fe vim/bundle/html5
@@ -18,13 +18,14 @@
 ab6c6f093b5937d631390bb69678217dc10e8018 vim/bundle/slimv
 c6197a10ace82e0fe0c08e5cf5c017b7069a978e vim/bundle/sparkup
 6eec2c131213850ed65fd6da494dfd1a0d620a4e vim/bundle/strftimedammit
-80ec6539e4139a2e0281a0f1e36d5038d55ad980 vim/bundle/supertab
-d9e6bfdd902fc661c8fd58ede248ccfc3b3039d7 vim/bundle/surround
-e220e1d8e6582b67618ac0d07b32c02e5f78210f vim/bundle/syntastic
+ac395b57fec47f034cba151d01669d134ac7041b vim/bundle/supertab
+4eb2cdfccc016889acfa3b5d63e8f390a87863cf vim/bundle/surround
+2616623bb9208c4bf2559b6aa5c1eff53644a0f7 vim/bundle/syntastic
 bbc5193de145ba5334cf02693d959f475a3e850b vim/bundle/threesome
 b944e534bd6bbfc4fd56d4ee1a8aa831188387b0 vim/bundle/vim-coffee-script
-8d06adbd56a761684701d1c60990b72c845be3d5 vim/bundle/vim-commentary
+62b72580aba57cb5185bd077ac7a905c1c6893ea vim/bundle/vim-commentary
 6362ba99c825afc046818807267d5c1143b5c887 vim/bundle/vim-javascript
 f21fbd8759d7fa6c3cb1bbb9fe05eae90422f01a vim/bundle/vim-makegreen
-aa53673d435020ed209b9df030df29070bda81f4 vim/bundle/vim-orgmode
+80cc08f3fb2205630a1f1cee159d8ff6052d91d0 vim/bundle/vim-orgmode
 b0ee6ec2153c5f30827d67db1668f37a975a1005 vim/bundle/vim-speeddating
+280ca1b471bd3a0d2347735e8fcbd03a53f2c6ad vim/bundle/yankring
--- a/vim/bundle/yankring/doc/yankring.txt	Mon Jan 16 11:28:13 2012 -0500
+++ b/vim/bundle/yankring/doc/yankring.txt	Mon Jan 16 12:15:40 2012 -0500
@@ -1,11 +1,13 @@
 *yankring.txt*      For Vim version 7.0. 
 
-Author:	        David Fishburn                             August 29, 2009
-Version:        10.0
+Author:	        David Fishburn                             September 16, 2011
+Version:        12.0
 
 For instructions on installing this file, type
 	:help add-local-help |add-local-help| inside Vim.
     
+Homepage: http://vim.sourceforge.net/script.php?script_id=1234
+
 
 ==============================================================================
 1. Contents                                      *yankring* *yankring-contents*
@@ -16,6 +18,7 @@
        3.1 Global Variables...................: |yankring-globals|
        3.2 Default Keys.......................: |yankring-mappings|
        3.3 Customizing Maps...................: |yankring-custom-maps|
+       3.4 Customizing Menus..................: |yankring-custom-menus|
     4. Using the YankRing Window..............: |yankring-window|
     5. Commands...............................: |yankring-commands|
        5.1  YRToggle..........................: |YRToggle|
@@ -46,6 +49,7 @@
        6.12 YRSearch..........................: |YRSearch-example|
     7. History................................: |yankring-history|
 
+
 ==============================================================================
 2. Description                                   *yankring-description*
 
@@ -78,6 +82,7 @@
 
 For details on the changes between versions see |yankring-history|.
 
+
 ==============================================================================
 3. Configuration                                 *yankring-configure*
 
@@ -269,6 +274,33 @@
 		no way to noticing.  To disable this feature you can put the following
 		in your |vimrc| >
             let g:yankring_paste_check_default_buffer = 0
+    yankring_default_menu_mode
+<       - Menus are useful for a number of reasons:
+              See a list of available commands.
+              Remember what the shortcut maps are.
+              Have a floating menu when using the plugin a lot.
+              Quick reference guide.
+          There are four settings that will control the placement
+          of the menu: 
+              "0": Turns the menu off.
+              "1": Turns the 'Yankring' menu on with no menu shortcut.
+              "2": Turns the 'Yankring 'menu on with <alt>-y as the shortcut.
+              "3": Turns the 'Plugin -> YankRing' menu on with <alt>-y as 
+                   the shortcut.
+          This option defaults to a value of 3 and can be changed
+          by adding the following to your vimrc: >
+            :let  g:yankring_default_menu_mode = 3
+    yankring_menu_root
+<       - Can be used in conjuction with g:yankring_default_menu_mode = 3 but 
+          it also allows you to control the fullname and location of the
+          YankRing menu.  To create the menu: 'MyPlugins -> YankRing' you 
+          can create the following variable: >
+            :let  g:yankring_menu_root = 'MyPlugin.&YankRing'
+    yankring_menu_priority
+<       - Menus are created in a documented order by Vim (|menu-priority|).
+          This option allows you to override the setting and shift the 
+          YankRing menu item to the left between the Edit and Tools menu. >
+            :let  g:yankring_menu_priority = 30
 
 <
 3.2 Default Keys                                 *yankring-mappings*
@@ -466,6 +498,15 @@
 This line remaps Y (which the user presses) to the YRYankCount command.  The
 YRYankCount tells Vim to execute y$ instead.
 
+3.4 Customizing Menus                            *yankring-custom-menus*
+
+There are several global variables which can be created in your vimrc to
+allow you to customize where and what is displayed for the YankRing menu. 
+Simply look up the following global variables: >
+    yankring_default_menu_mode
+    yankring_menu_root
+    yankring_menu_priority
+
 
 ==============================================================================
 4. Using the YankRing Window:                    *yankring-window*
@@ -526,8 +567,6 @@
                 g:yankring_window_increment setting.
   ?             Toggles the display of the help.
 
- 
-
 
 ==============================================================================
 5. Commands:                                     *yankring-commands*
@@ -1131,6 +1170,30 @@
 ==============================================================================
 7. History                                       *yankring-history*
 
+  12.0: September 16, 2011
+         NF: Added support for the clipboard option "unnamedplus" which was
+             added after 7.3 (Hong Xu).
+         NF: When displaying the YankRing using YRShow, a new command "R"
+             has been added to display all of Vim's registers [0-9a-z].
+         BF: YRMapsDelete did not remove the normal mode @ map, which 
+             interfers with recorded macros (Philippe Vaucher ).
+
+  11.0: August 09, 2010
+         NF: Documented the global variables to customize the location
+             of the YankRing menu.
+         NF: The YankRing menu now shows the maps used for the default 
+             actions to help learn them more easily.
+         NF: Added g:yankring_menu_root and g:yankring_menu_priority 
+             (David Barsam).
+         NF: Added a warning indicating a stored value has been truncated 
+             based on g:yankring_max_element_length and a new option to
+             suppress this warning, g:yankring_warn_on_truncate (Hans-Günter).
+         BF: The YRAfterMaps() function (if it exists) was not re-run if 
+             YRToggle was used to disable and enable the YankRing.
+         BF: Multibyte strings may not have been pasted correctly (Dr. Chip).
+         BF: When pasting a string of 1111's, and additional -1 could also 
+             be included in the output.
+
   10.0: January 31, 2010
          NF: Change the buffer name to [YankRing] to resemble other
              non-user buffers.
--- a/vim/bundle/yankring/plugin/yankring.vim	Mon Jan 16 11:28:13 2012 -0500
+++ b/vim/bundle/yankring/plugin/yankring.vim	Mon Jan 16 12:15:40 2012 -0500
@@ -1,8 +1,8 @@
 " yankring.vim - Yank / Delete Ring for Vim
 " ---------------------------------------------------------------
-" Version:  10.0
+" Version:  12.0
 " Authors:  David Fishburn <dfishburn.vim@gmail.com>
-" Last Modified: 2010 Jan 24
+" Last Modified: 2011 Jun 14
 " Script:   http://www.vim.org/scripts/script.php?script_id=1234
 " Based On: Mocked up version by Yegappan Lakshmanan
 "           http://groups.yahoo.com/group/vim/post?act=reply&messageNum=34406
@@ -18,7 +18,7 @@
   finish
 endif
 
-let loaded_yankring = 100
+let loaded_yankring = 120
 
 let s:yr_has_voperator     = 0
 if v:version > 701 || ( v:version == 701 && has("patch205") )
@@ -52,6 +52,11 @@
     let g:yankring_max_element_length = 1048576
 endif
 
+" Warn if truncation occurs
+if !exists('g:yankring_warn_on_truncate')
+    let g:yankring_warn_on_truncate = 1
+endif
+
 " Allow the user to specify if the plugin is enabled or not
 if !exists('g:yankring_enabled')
     let g:yankring_enabled = 1
@@ -323,6 +328,11 @@
         let toggle = matchstr(a:1, '\d\+')
     endif
 
+    let show_registers = 0
+    if a:0 > 1 && a:2 ==# 'R'
+        let show_registers = 1
+    endif
+
     if toggle == 1
         if bufwinnr(s:yr_buffer_id) > -1
             " If the YankRing window is already open close it
@@ -351,9 +361,9 @@
     " show the contents (or when it is refreshed).
     if g:yankring_paste_check_default_buffer == 1 
         let save_reg = 0
-        let register = ((&clipboard=='unnamed')?'+':'"')
+        let register = ((&clipboard=~'unnamed')?'+':'"')
 
-        if &clipboard == 'unnamed' && getreg('+') != s:yr_prev_clipboard
+        if &clipboard =~ 'unnamed' && getreg('+') != s:yr_prev_clipboard
             let save_reg = 1
         endif
         if register == '"' && getreg('"') != s:yr_prev_reg_unnamed
@@ -371,14 +381,23 @@
     " List is shown in order of replacement
     " assuming using previous yanks
     let output = "--- YankRing ---\n"
-    let output = output . "Elem  Content\n"
+    let output = output . (show_registers == 1 ? 'Reg ' : 'Elem')."  Content\n"
 
-    call s:YRHistoryRead()
-    let disp_item_nr = 1
-    for elem in s:yr_history_list
-        let output  = output . s:YRDisplayElem(disp_item_nr, elem) . "\n"
-        let disp_item_nr   += 1
-    endfor
+    if show_registers == 1
+        for reg_name in map( range(char2nr('0'), char2nr('9')) +
+                    \ (range(char2nr('a'), char2nr('z')))
+                    \, 'nr2char(v:val)' 
+                    \ )
+            let output  = output . s:YRDisplayElem(reg_name, getreg(reg_name).',') . "\n"
+        endfor
+    else
+        call s:YRHistoryRead()
+        let disp_item_nr = 1
+        for elem in s:yr_history_list
+            let output  = output . s:YRDisplayElem(disp_item_nr, elem) . "\n"
+            let disp_item_nr   += 1
+        endfor
+    endif
 
     if g:yankring_window_use_separate == 1
         call s:YRWindowOpen(output)
@@ -438,7 +457,7 @@
         return -1
     endif
 
-    let default_buffer = ((&clipboard=='unnamed')?'+':'"')
+    let default_buffer = ((&clipboard=~'unnamed')?'+':'"')
 
     let direction = 'p'
     if a:0 > 1
@@ -483,7 +502,7 @@
         return -1
     endif
 
-    let default_buffer = ((&clipboard=='unnamed')?'+':'"')
+    let default_buffer = ((&clipboard=~'unnamed')?'+':'"')
     call setreg(default_buffer
                 \ , s:YRGetValElemNbr((elem), 'v')
                 \ , s:YRGetValElemNbr((elem), 't')
@@ -632,7 +651,7 @@
 
 " Resets the common script variables for managing the ring.
 function! s:YRReset()
-    let s:yr_history_list          = []
+    call s:YRHistoryDelete()
     " Update the history file
     call s:YRHistorySave()
 endfunction
@@ -696,7 +715,7 @@
     " so test for this condition and return the 
     " default register
     let user_register = ((v:register=='')?('"'):(v:register))
-    if &clipboard == 'unnamed' && user_register == '"'
+    if &clipboard =~ 'unnamed' && user_register == '"'
         let user_register = '+'
     endif
     return user_register
@@ -718,7 +737,7 @@
     " If we are pushing something on to the yankring, add it to
     " the default buffer as well so the next item pasted will
     " be the item pushed
-    let default_buffer = ((&clipboard=='unnamed')?'+':'"')
+    let default_buffer = ((&clipboard=~'unnamed')?'+':'"')
     call setreg(default_buffer, getreg(user_register), 
                 \ getregtype(user_register))
 
@@ -781,7 +800,7 @@
         return ""
     endif
 
-    let register = ((&clipboard=='unnamed')?'+':register)
+    let register = ((&clipboard=~'unnamed')?'+':register)
 
     " let s:yr_prev_changenr    = changenr()
     if register == '"'
@@ -804,14 +823,16 @@
         let s:yr_prev_clipboard = @+
     endif
 
+    " Manage the numbered registers
+    if g:yankring_manage_numbered_reg == 1
+        " Allow the user to define an autocmd to dynamically
+        " setup their connection information.
+        silent! doautocmd User YRSetNumberedReg
+    endif
+
     " If the yankring window is open, refresh it
     call s:YRWindowUpdate()
 
-    " Manage the numbered registers
-    if g:yankring_manage_numbered_reg == 1
-        call s:YRSetNumberedReg()
-    endif
-
     return ""
 endfunction
 
@@ -827,7 +848,7 @@
         return ""
     endif
 
-    let register = ((&clipboard=='unnamed')?'+':register)
+    let register = ((&clipboard=~'unnamed')?'+':register)
 
     if register == '"'
         " If the change has occurred via an omap, we must delay
@@ -853,14 +874,16 @@
         let s:yr_prev_clipboard = @+
     endif
 
+    " Manage the numbered registers
+    if g:yankring_manage_numbered_reg == 1
+        " Allow the user to define an autocmd to dynamically
+        " setup their connection information.
+        silent! doautocmd User YRSetNumberedReg
+    endif
+
     " If the yankring window is open, refresh it
     call s:YRWindowUpdate()
 
-    " Manage the numbered registers
-    if g:yankring_manage_numbered_reg == 1
-        call s:YRSetNumberedReg()
-    endif
-
     return ""
 endfunction
 
@@ -1012,19 +1035,27 @@
 " Manages the Vim's numbered registers
 function! s:YRSetNumberedReg() 
 
-    let i = 1
+    let i = 0
 
     while i <= 10
         if i > s:yr_count
             break
         endif
 
-        call setreg( (i-1)
-                    \ , s:YRGetValElemNbr((i-1),'v')
-                    \ , s:YRGetValElemNbr((i-1),'t')
+        call setreg( (i)
+                    \ , s:YRGetValElemNbr((i),'v')
+                    \ , s:YRGetValElemNbr((i),'t')
                     \ )
         let i += 1
     endwhile
+
+    " There are a few actions that Vim automatically takes
+    " when modifying the numbered registers.
+    " Modifying register 1 - changes the named register.
+    " It is impossible to set register 2 to a value, since Vim will change it.
+
+    " This will at least preserve the default register
+    let @" = @0
 endfunction
 
 
@@ -1128,7 +1159,7 @@
 function! s:YRYankRange(do_delete_selection, ...) range
 
     let user_register  = s:YRRegister()
-    let default_buffer = ((&clipboard=='unnamed')?'+':'"')
+    let default_buffer = ((&clipboard=~'unnamed')?'+':'"')
 
     " Default command mode to normal mode 'n'
     let cmd_mode = 'n'
@@ -1185,7 +1216,7 @@
     
 
     let user_register  = s:YRRegister()
-    let default_buffer = ((&clipboard == 'unnamed')?'+':'"')
+    let default_buffer = ((&clipboard =~ 'unnamed')?'+':'"')
     let v_count        = v:count
 
     " Default command mode to normal mode 'n'
@@ -1356,7 +1387,7 @@
     " echomsg "YRMapsE:".localtime()
     " echomsg "YRMapsE 1:".cmds.":".v:operator.":".s:yr_maps_created_zap
 
-    if  (a:motion =~ '\.' && s:yr_remove_omap_dot == 1) || a:motion =~ '@'
+    if (a:motion =~ '\.' && s:yr_remove_omap_dot == 1) || a:motion =~ '@'
         " If we are repeating a series of commands we must
         " unmap the _zap_ keys so that the user is not
         " prompted when a command is replayed.
@@ -1407,6 +1438,11 @@
             let cmds .= a:sid. "yrrecord"
         endif
     endif
+ 
+    " This will not work since we are already executing an expression
+    " if a:motion =~ '@'
+    "     let cmds = 'normal! ' . cmds
+    " endif
 
     " echomsg "YRMapsE 5:".a:motion.":'".cmds."':".s:yr_maps_created_zap
     return cmds
@@ -1414,41 +1450,43 @@
 endfunction
  
 
-" Handle any the @
-function! s:YRMapsMacro(bang, ...) range
-    " If we are repeating a series of commands we must
-    " unmap the _zap_ keys so that the user is not
-    " prompted when a command is replayed.
-    " These maps must be re-instated in YRRecord3()
-    " after the action of the replay is completed.
-    call s:YRMapsDelete('remove_only_zap_keys')
-
-    " let zapto = (a:0==0 ? "" : s:YRGetChar())
-    let zapto = s:YRGetChar()
-
-    if zapto == "\<C-C>"
-        " Abort if the user hits Control C
-        call s:YRWarningMsg( "YR:Aborting command:".v:operator.a:motion )
-        return ""
-    endif
-
-    let v_count    = v:count
-    " If no count was specified it will have a value of 0
-    " so set it to at least 1
-    let v_count = ((v_count > 0)?(v_count):'')
-
-    let range = ''
-    if a:firstline != a:lastline
-        let rannge = a:firstline.','.a:lastline
-    endif
-
-    let cmd = range."normal! ".v_count.'@'.zapto
-    " DEBUG
-    " echomsg cmd
-    exec cmd
-
-    call s:YRMapsCreate('add_only_zap_keys')
-endfunction
+" Handle macros (@).
+" This routine is not used, YRMapsExpression is used to
+" handle the @ symbol.
+" function! s:YRMapsMacro(bang, ...) range
+"     " If we are repeating a series of commands we must
+"     " unmap the _zap_ keys so that the user is not
+"     " prompted when a command is replayed.
+"     " These maps must be re-instated in YRRecord3()
+"     " after the action of the replay is completed.
+"     call s:YRMapsDelete('remove_only_zap_keys')
+" 
+"     " let zapto = (a:0==0 ? "" : s:YRGetChar())
+"     let zapto = s:YRGetChar()
+" 
+"     if zapto == "\<C-C>"
+"         " Abort if the user hits Control C
+"         call s:YRWarningMsg( "YR:Aborting command:".v:operator.a:motion )
+"         return ""
+"     endif
+" 
+"     let v_count    = v:count
+"     " If no count was specified it will have a value of 0
+"     " so set it to at least 1
+"     let v_count = ((v_count > 0)?(v_count):'')
+" 
+"     let range = ''
+"     if a:firstline != a:lastline
+"         let rannge = a:firstline.','.a:lastline
+"     endif
+" 
+"     let cmd = range."normal! ".v_count.'@'.zapto
+"     " DEBUG
+"     " echomsg cmd
+"     exec cmd
+" 
+"     call s:YRMapsCreate('add_only_zap_keys')
+" endfunction
  
 
 " Create the default maps
@@ -1549,6 +1587,11 @@
 
     let g:yankring_enabled    = 1
     let s:yr_maps_created     = 1
+
+    if exists('*YRRunAfterMaps') 
+        " This will allow you to override the default maps if necessary
+        call YRRunAfterMaps()
+    endif
 endfunction
  
 
@@ -1592,84 +1635,79 @@
         endtry
     endfor
 
-    if g:yankring_map_dot == 1
-        exec "nunmap ."
+    if g:yankring_map_dot == 1 
+        silent! exec "nunmap ."
     endif
     if g:yankring_v_key != ''
-        exec 'vunmap '.g:yankring_v_key
+        silent! exec 'vunmap '.g:yankring_v_key
     endif
     if g:yankring_del_v_key != ''
         for v_map in split(g:yankring_del_v_key)
             if strlen(v_map) > 0
                 try
-                    exec 'vunmap '.v_map
+                    silent! exec 'vunmap '.v_map
                 catch
                 endtry
             endif
         endfor
     endif
     if g:yankring_paste_n_bkey != ''
-        exec 'nunmap '.g:yankring_paste_n_bkey
+        silent! exec 'nunmap '.g:yankring_paste_n_bkey
         if g:yankring_paste_using_g == 1
-            exec 'nunmap g'.g:yankring_paste_n_bkey
+            silent! exec 'nunmap g'.g:yankring_paste_n_bkey
         endif
     endif
     if g:yankring_paste_n_akey != ''
-        exec 'nunmap '.g:yankring_paste_n_akey
+        silent! exec 'nunmap '.g:yankring_paste_n_akey
         if g:yankring_paste_using_g == 1
-            exec 'nunmap g'.g:yankring_paste_n_akey
+            silent! exec 'nunmap g'.g:yankring_paste_n_akey
         endif
     endif
     if g:yankring_paste_v_bkey != ''
-        exec 'vunmap '.g:yankring_paste_v_bkey
+        silent! exec 'vunmap '.g:yankring_paste_v_bkey
     endif
     if g:yankring_paste_v_akey != ''
-        exec 'vunmap '.g:yankring_paste_v_akey
+        silent! exec 'vunmap '.g:yankring_paste_v_akey
     endif
     if g:yankring_replace_n_pkey != ''
-        exec 'nunmap '.g:yankring_replace_n_pkey
+        silent! exec 'nunmap '.g:yankring_replace_n_pkey
     endif
     if g:yankring_replace_n_nkey != ''
-        exec 'nunmap '.g:yankring_replace_n_nkey
+        silent! exec 'nunmap '.g:yankring_replace_n_nkey
     endif
 
+    silent! exec 'nunmap @'
+
     let g:yankring_enabled    = 0
     let s:yr_maps_created     = 0
 endfunction
 
 function! s:YRGetValElemNbr( position, type )
-
     let needed_elem = a:position
 
     " The List which contains the items in the yankring
     " history is also ordered, most recent at the top
     let elem = s:YRMRUGet('s:yr_history_list', needed_elem)
 
-    if elem >= 0
-        if a:type == 't'
-            return matchstr(elem, '^.*,\zs.*$')
+    if a:type == 't'
+        let elem = matchstr(elem, '^.*,\zs.*$')
+    else
+        let elem = matchstr(elem, '^.*\ze,.*$')
+        if s:yr_history_version == 'v1'
+            " Match three @@@ in a row as long as it is not
+            " preceeded by a @@@            
+            " v1
+            let elem = substitute(elem, s:yr_history_v1_nl_pat, "\n", 'g')
+            let elem = substitute(elem, '\\@', '@', 'g')
         else
-            let elem = matchstr(elem, '^.*\ze,.*$')
-            if s:yr_history_version == 'v1'
-                " Match three @@@ in a row as long as it is not
-                " preceeded by a @@@            
-                " v1
-                let elem = substitute(elem, s:yr_history_v1_nl_pat, "\n", 'g')
-                let elem = substitute(elem, '\\@', '@', 'g')
-            else
-                let elem = substitute(elem, s:yr_history_v2_nl_pat, "\n", 'g')
-            endif
-            return elem
+            let elem = substitute(elem, s:yr_history_v2_nl_pat, "\n", 'g')
         endif
-    else
-        return -1
     endif
 
-    return ""
+    return elem
 endfunction
 
 function! s:YRMRUReset( mru_list )
-
     let {a:mru_list} = []
 
     return 1
@@ -1683,6 +1721,16 @@
     let elem    = a:element
     if g:yankring_max_element_length != 0
         let elem    = strpart(a:element, 0, g:yankring_max_element_length)
+        if (g:yankring_warn_on_truncate > 0)
+            let bytes = len (a:element) - len(elem)
+            if (bytes > 0)
+                call s:YRWarningMsg("Yankring truncated its element by ".
+                                        \ bytes.
+                                        \ " bytes due to a g:yankring_max_element_length of ".
+                                        \ g:yankring_max_element_length
+                                        \ )
+            endif
+        endif
     endif
     if s:yr_history_version == 'v1'
         let elem    = escape(elem, '@')
@@ -1754,7 +1802,6 @@
 endfunction
 
 function! s:YRMRUDel( mru_list, elem_nbr )
-
     if a:elem_nbr >= 0 && a:elem_nbr < s:yr_count 
         call remove({a:mru_list}, a:elem_nbr)
         call s:YRHistorySave()
@@ -1763,6 +1810,23 @@
     return 1
 endfunction
 
+function! s:YRHistoryDelete()
+    let s:yr_history_list = []
+    let yr_filename       = s:yr_history_file_{s:yr_history_version}
+
+    if filereadable(yr_filename)
+        let rc = delete(yr_filename)
+        if rc != 0
+            call s:YRErrorMsg(
+                        \ 'YRHistoryDelete: Unable to delete the yankring history file: '.
+                        \ yr_filename
+                        \ )
+        endif
+    endif
+
+    return 0
+endfunction 
+
 function! s:YRHistoryRead()
     let refresh_needed  = 1
     let yr_history_list = []
@@ -1801,20 +1865,22 @@
 endfunction 
 
 function! s:YRHistorySave()
+    let yr_filename     = s:yr_history_file_{s:yr_history_version}
+
     if len(s:yr_history_list) > g:yankring_max_history
         " Remove items which exceed the max # specified
         call remove(s:yr_history_list, g:yankring_max_history)
     endif
 
-    let rc = writefile(s:yr_history_list, s:yr_history_file_{s:yr_history_version})
+    let rc = writefile(s:yr_history_list, yr_filename)
 
     if rc == 0
-        let s:yr_history_last_upd = getftime(s:yr_history_file_{s:yr_history_version})
+        let s:yr_history_last_upd = getftime(yr_filename)
         let s:yr_count = len(s:yr_history_list)
     else
         call s:YRErrorMsg(
                     \ 'YRHistorySave: Unable to save yankring history file: '.
-                    \ s:yr_history_file_{s:yr_history_version}
+                    \ yr_filename
                     \ )
     endif
 endfunction 
@@ -1879,7 +1945,7 @@
 
     let msg = 'AutoClose='.g:yankring_window_auto_close.
                 \ ';ClipboardMonitor='.g:yankring_clipboard_monitor.
-                \ ';Cmds:<enter>,[g]p,[g]P,d,r,s,a,c,u,q,<space>;Help=?'.
+                \ ';Cmds:<enter>,[g]p,[g]P,d,r,s,a,c,u,R,q,<space>;Help=?'.
                 \ (s:yr_search==""?"":';SearchRegEx='.s:yr_search)
 
     if s:yr_has_voperator == 0
@@ -1896,7 +1962,8 @@
                     \ '" [g]P         : [g][P]aste selection'."\n".
                     \ '" r            : [p]aste selection in reverse order'."\n".
                     \ '" s            : [s]earch the yankring for text'."\n".
-                    \ '" u            : [u]pdate display'."\n".
+                    \ '" u            : [u]pdate display show YankRing'."\n".
+                    \ '" R            : [R]egisters display'."\n".
                     \ '" a            : toggle [a]utoclose setting'."\n".
                     \ '" c            : toggle [c]lipboard monitor setting'."\n".
                     \ '" q            : [q]uit / close the yankring window'."\n".
@@ -2084,6 +2151,7 @@
     nnoremap <buffer> <silent> ?             :call <SID>YRWindowAction ('?' ,'n')<CR>
     nnoremap <buffer> <silent> u             :call <SID>YRWindowAction ('u' ,'n')<CR>
     nnoremap <buffer> <silent> q             :call <SID>YRWindowAction ('q' ,'n')<CR>
+    nnoremap <buffer> <silent> R             :call <SID>YRWindowAction ('R' ,'n')<CR>
     nnoremap <buffer> <silent> <space>     \|:silent exec 'vertical resize '.
                 \ (
                 \ g:yankring_window_use_horiz!=1 && winwidth('.') > g:yankring_window_width
@@ -2151,7 +2219,7 @@
 endfunction
 
 function! s:YRWindowAction(op, cmd_mode) range
-    let default_buffer = ((&clipboard=='unnamed')?'+':'"')
+    let default_buffer = ((&clipboard=~'unnamed')?'+':'"')
     let opcode     = a:op
     let lines      = []
     let v_count    = v:count
@@ -2220,6 +2288,12 @@
     
         call s:YRShow(0)
         return
+    elseif opcode ==# 'R'
+        " Switch back to the original buffer
+        exec s:yr_buffer_last_winnr . "wincmd w"
+    
+        call s:YRShow(0, 'R')
+        return
     elseif opcode ==# 'a'
         let l:curr_line = line(".")
         " Toggle the auto close setting
@@ -2399,6 +2473,8 @@
     autocmd WinLeave    * :call <SID>YRWinLeave()
     autocmd FocusGained * :if has('clipboard') | call <SID>YRFocusGained() | endif
     autocmd InsertLeave * :call <SID>YRInsertLeave()
+    autocmd User        YRSetNumberedReg :call <SID>YRSetNumberedReg()
+    " autocmd User        YRSetNumberedReg :let i = 0 | while i <= 10 | if i > s:yr_count | break | endif | call setreg( (i), s:YRGetValElemNbr((i),'v'), s:YRGetValElemNbr((i),'t') ) | let i += 1 | endwhile
 augroup END
 
 
@@ -2431,18 +2507,30 @@
 if has("gui_running") && has("menu") && g:yankring_default_menu_mode != 0
     if g:yankring_default_menu_mode == 1
         let menuRoot = 'YankRing'
+        let menuPriority = ''
     elseif g:yankring_default_menu_mode == 2
         let menuRoot = '&YankRing'
+        let menuPriority = ''
+    elseif g:yankring_default_menu_mode == 3 
+        let menuRoot = exists("g:yankring_menu_root") ? g:yankring_menu_root : '&Plugin.&YankRing'
+        let menuPriority = exists("g:yankring_menu_priority") ? yankring_menu_priority : ''
     else
         let menuRoot = '&Plugin.&YankRing'
+        let menuPriority = ''
     endif
 
-    exec 'noremenu  <script> '.menuRoot.'.YankRing\ Window  :YRShow<CR>'
-    exec 'noremenu  <script> '.menuRoot.'.YankRing\ Search  :YRSearch<CR>'
-    exec 'noremenu  <script> '.menuRoot.'.Replace\ with\ Previous  :YRReplace ''-1'', ''P''<CR>'
-    exec 'noremenu  <script> '.menuRoot.'.Replace\ with\ Next  :YRReplace ''1'', ''P''<CR>'
-    exec 'noremenu  <script> '.menuRoot.'.Clear  :YRClear<CR>'
-    exec 'noremenu  <script> '.menuRoot.'.Toggle :YRToggle<CR>'
+    let leader = '\'
+    if exists('g:mapleader')
+        let leader = g:mapleader
+    endif
+    let leader = escape(leader, '\')
+
+    exec 'noremenu  <script> '.menuPriority.' '.menuRoot.'.YankRing\ Window  :YRShow<CR>'
+    exec 'noremenu  <script> '.menuPriority.' '.menuRoot.'.YankRing\ Search  :YRSearch<CR>'
+    exec 'noremenu  <script> '.menuPriority.' '.menuRoot.'.Replace\ with\ Previous<TAB>'.leader.'<C-P> :YRReplace ''-1'', ''P''<CR>'
+    exec 'noremenu  <script> '.menuPriority.' '.menuRoot.'.Replace\ with\ Next<TAB>'.leader.'<C-N> :YRReplace ''1'', ''P''<CR>'
+    exec 'noremenu  <script> '.menuPriority.' '.menuRoot.'.Clear  :YRClear<CR>'
+    exec 'noremenu  <script> '.menuPriority.' '.menuRoot.'.Toggle :YRToggle<CR>'
 endif
 
 if g:yankring_enabled == 1
@@ -2450,11 +2538,6 @@
     call s:YRMapsCreate()
 endif
 
-if exists('*YRRunAfterMaps') 
-    " This will allow you to override the default maps if necessary
-    call YRRunAfterMaps()
-endif
-
 call s:YRInit()
 call s:YRHistoryRead()
 
--- a/zsh/misc.zsh	Mon Jan 16 11:28:13 2012 -0500
+++ b/zsh/misc.zsh	Mon Jan 16 12:15:40 2012 -0500
@@ -1,4 +1,5 @@
 alias h=hg
+alias g=git
 
 alias ghcm='ghc --make -optl"-Wl,-read_only_relocs,suppress"'
 alias pbc='pbcopy'