NF: The yankring_history_dir option can now take a comma separated list. First valid directory found will be used (Alex Bel). NF: YankRing can now monitor inserted text and place it in the ring. This is disabled by default, but can be enabled either through the YankRing window or via your .vimrc using the new option: g:yankring_record_insert = 1 (Alexandre Viau). BF: When g:yankring_persist = 0, the YankRing was still reading and writing to the yankring file (Vladimir Marek). BF: The YankRing menu entry, "Replace with Next", was performing the "Replace with Previous" action (Thilo Six).
NF: Automatically turn off relativenumber for the YankRing window (Emma Tramp). NF: The YankRing window supports 1-9 to choose to paste those items for quicker access to the top 9 items. BF: When re-executing a macro using @<letter> and the macro used f, F, t, T, a "Press ENTER to continue" prompt was displayed (Greg Sexton). BF: Some documentation updates and script tweaks (Dominique Pellé). BF: The 0 register was updated during delete operations (Christian Brabandt). BF: When running a macro (@a), pressing @ displays a YankRing prompt (YR:Enter character:) to choose which macro name to run. This prompt was displayed twice leading to a "Press ENTER or type command to continue" Vim message. This change suppresses the "Press ENTER" message (Greg Sexton). BF: The YankRing prevented you from re-running the last macro using @@. BF: YRToggle (to disable / enable the YankRing) did not unmap @. BF: When prompted for a macro to run, if an invalid value was provided, Vim could report "E354: Invalid register name". BF: When using a Vim instance with < 80 columns and using a horizontal YankRing window after opening and closing the YankRing window the Vim window did not shrink back to its original size (Eric Weir). BF: Updated documented values of yankring_window_height and yankring_window_width (Paul). BF: It was not possible to paste from the * register if the clipboard option contains unnamedplus before unnamed (Marcin Szamotulski).
NF: The YankRing window supports 1-9 to choose to paste those items for quicker access to the top 9 items. NF: The YankRing now maps the @ key to run macros. Not all actions performed during the macro are recorded by the YankRing as a number of items had to be unmapped to support the replay of actions which can prompt the user for input (i.e. t and f) (Asis Hallab). BF: When flipping between applications the system clipboard was not added to the YankRing in all cases. BF: The YankRing could report E121: Undefined variable: g:yankring_manual_clipboard_check (Thilo Six). BF: The YankRing could report: E132: Function call depth is higher than 'maxfuncdepth'. When executing a YRClear or YRPop or when flipping between applications (Marcin Szamotulski). BF: Strange behaviour when opening the YankRing with :e [YankRing] instead of :YRShow (Marcin Szamotulski).
NF: [p, ]p, [P, ]P are now supported within the YankRing window (Alexandre Provencio). NF: When using the console version of Vim the yankring was not detecting the "+ register automatically as the FocusGained event does not fire in console mode. When new elements are added or the YankRing is shown the clipboard will be checked for new values (Giuseppe Rota). NF: Added a new option, g:yankring_manual_clipboard_check which when enabled will manually check for clipboard changes at certain times within the YankRing. This option is not used if the GUI is running as the FocusGained will perform checks at appropriate times (Erik Westrup). BF: With clipboard=unnamed replacing the previous paste with a different value from the YankRing did not work in all cases (Chris Lott). BF: Under certain conditions the YankRing would still check the system clipboard even if g:yankring_clipboard_monitor == 0. This can lead to delays when attempting to access the clipboard when running in console mode. Starting Vim with the -X switch removes the delay (Erik Westrup). BF: Incorrect syntax setting cpoptions (Thilo Six).
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 ).
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.
NF: Change the buffer name to [YankRing] to resemble other non-user buffers. NF: Added g:yankring_min_element_length which can prevent items from being added to the YankRing if they are too small. For example, single character deletes (Vedran M). BF: When shifting focus back to Vim, the YankRing may incorrectly report: "YR:Failed to change to the yankring buffer, please contact author". BF: When entering Vim for the first time and hitting "p" nothing was pasted (Mark Huiskes). BF: When entering Vim for the first time and the yankring_clipboard_monitor = 1, the clipboard entry was not automatically added to the yankring. BF: When overriding the default and setting g:yankring_window_use_bottom = 0, the YankRing would report the error (Sergey Khorev): E21: Cannot make changes, 'modifiable' is off
BF: You cannot execute a macro with ":normal @a". It is still not possible, but you can execute it with ":normal! @a" (A S Budden). BF: When g:yankring_persist = 0 the YankRing could go into an infinite loop (A S Budden). BF: When replaying a macro which used any of the zap keys (f,F,t,T,/,?) you were prompted again for the string to match on (Ovidiu C). BF: When checking the clipboard for changes (g:yankring_clipboard_monitor == 1) only add the item if it is not already in the ring. Previously, the item was moved to the top of the YankRing each time you flipped focus.
NF: Changed the implementation of YRGetSearch() (David Liang). BF: Under some unknown circumstances, the yankring can fail to change to the correct buffer. Put in code to double check and abort. BF: Yanking and pasting a line which ends in a backslash resulted in the backslash being replaced by "@@@". BF: When repeating a command (".") which used any of the zap keys (f,F,t,T,/,?) you were prompted again for the string to match on (Vasilii Pascal).
NF: Added support for the / and ? motions so that y/search is supported (Vasilii Pascal). NF: When the YankRing window is displayed (or updated) an additional check is made against the default register. If it has changed since the YankRing recorded it, the value will be added to the history. NF: Added support for more motions h, j, k, l, H, M, L, ^, 0, -, +, _. And a pile of g motions g_, g^, gm, g$, gk, gj, gg, ge, gE. NF: The YankRing window will display a message it is operating in a limited mode if not using Vim 7.2 or the correct patch level. BF: Correction to some internal code which could lead to an endless loop (John Beckett). BF: Opening and closing the YankRing window with "set report=0" reported "1 line less" messages (Bill McCarthy). BF: Changed the default value of g:yankring_paste_check_default_buffer to check if the default paste buffer has changed when pressing 'p'. For example, if a plugin has changed the default registers it will be pasted rather than the top item from the YankRing. BF: YRMapsDelete did not remove all the maps created by the YankRing. BF: Under particular circumstances, yanking text with embedded @ characters were not properly stored and retrieved from the YankRing (Andrew Long). BF: Changed to use xmaps instead of vmaps so that the maps only work in visual mode and not select mode (David Liang).
NF: The YankRing now maintains the history in a file. This means if you are running multiple instances of Vim, they all see the same yankring whether you are using X, Windows, SSH or Screen. NF: The location and name of the file is configurable by the user. NF: The g:yankring_separator is no longer used and has been removed. NF: The g:yankring_max_element_length can be used to limit the size of an element in the yankring. NF: The g:yankring_share_between_instances can be used to indicate whether each instance of Vim running on a machine should share the history file or whether each should have their own individual history file. NF: The g:yankring_clipboard_monitor can be used to indicate whether changes to the system clipboard should be added to the YankRing (default is on). NF: The YankRing window can toggle the clipboard monitor by pressing 'c'. See the help in the window by pressing ?. NF: Added some highlighting to the YankRing window (Marty Grenfell).
NF: The yankring can recognize certain Vim commands which do not change the contents of a buffer and not attempt to capture it. NF: The global variables which allow you to customize the behaviour are now space separated instead of comma separated. This provides greater flexibility but will require you to modify your vimrc (if you have customized it). (Andy Wokula) BF: If using <C-O> from within insert mode, the yankring inserted characters into the buffer instead of capturing the changes, this was fixed by Andy Wokula (Agathoklis Hatzimanikas). BF: The yankring did not properly account for all the different forms of counts "5yy" worked but "y5y" did not (Edwin Shao).
NF: The yankring now allows you to override which operators should be ignored (yankring_ignore_operator). By default this is set for the standard Vim operators which do not modify any registers (Examples: = and gu) (Andy Wokula). NF: The yankring did not map v_x (Matt Tolton). BF: The expression register (quote=) was not accounted for correctly (Agathoklis Hatzimanikas). BF: Using the v:operator variable must be escaped when used in a regular expression.
NF: The yankring by default now captures all |text-objects| and all motions (|motion.txt|) which Vim supports. Version 3.0 only supported a subset of the basic motion commands. NF: Prior to this version only predefined maps triggered the capture of data into the yankring. These maps only supported yanks and deletes. The yankring now also supports operator-pending mode, which allows a greater range of operations to be automatically captured and added to the yankring. Operating pending mode functionality requires Vim 7.2 or Vim 7.1 with patch #205. If using Vim 7.1 you can determine this with: echo has("patch205") NF: Prior to this version only yanks and deletes were registered in the yankring. Changes are now also captured into the yankring. NF: The yankring will also capture the system cliboard when focus is returned to the vim window. This is useful if you copy text between applications. NF: The yankring window always opened bottom horizontal. Now it can be opened top or bottom and horizontal or vertically. This can be controlled via variables in your .vimrc. BF: The yankring has an option to persist between instances of Vim by storing the values in global variables within the viminfo. This has led to some unusual ordering of items in the ring from conflicts between instances. This option has been turn off by default. BF: Their was an issue with yanking using y$.
NF: Converted the yankring to use the new Vim7's List object which means it is no longer compatible with Vim6. NF: By default the yankring will now maintain the yankring's items persistently by default. It does this via the |viminfo| file. This means the contents of the yankring rely on the internal variables of only 1 Vim instance. BF: YRToggle was not unmapping 'gp' and 'gP'. BF: YRSearch prompted the user for a regex even if one was provided on the command line. BF: If g:yankring_manage_numbered_reg is enabled, the "." operator did not correctly repeat the previous action (Pedro DeRose).
NF: Much improved usability, the yankring now has a "GUI" to service the yankring. If YRShow or YRSearch is used, a split buffer is opened which displays all the elements in the yankring. There are a number of maps that allow you to interact with the contents. The window can be positioned vertically or horizontally as well as being sized all through options specified in your vimrc. NF: Added the ability for the yankring to override Vim's numbered registers. Instead of the numbered registers holding the last yanked value, and the 9 previous deletes, they will now reflect the top 10 items in the yankring. This allows you to reference them directly with "5p. NF: YRPop can now delete any items from the yankring, rather that just from the top. NF: YRSetTop has been removed, it is no longer required as the internal representation of the yankring has changed. BF: If g:yankring_ignore_duplicate is set (which is the default) you could get some unpredicable results when moving backwards and forwards (<C-P> and <C-N>) through the previous values.
Added a new split buffer that allows you to visually interact with the yankring. This makes using it much better, no more commands you need to remember. Previous commands are still available. The new buffer is configurable. Please see the tutorial for further details. Feedback is greatly appreciated.
NF: YRSearch is similar to YRGetElem. Given a regular expression it will interactively display all the elements in the yankring that match the regular expression. You can enter the number of the element to paste it. If you have many elements within the yankring, this can help you identify them more easily. NF: Updated the default history size from 30 to 100, which is partially the reason for the YRSearch command. NF: By default it supports "gp" and "gP", in addition to "p" and "P". NF: Added support for the expression register (:h quote=). Here is an example of how it is used: "="X"<CR>P
NF: The yankring now respects the cpoptions setting, if 'y' is included and you press '.', the previous yank command is executed and added to the yankring. You can also add this behaviour by setting this in your |vimrc|: let g:yankring_dot_repeat_yank = 1 NF: Duplicates will not be added to the yankring by default. If a duplicate is found, the element will be moved to the top of the yankring. This can be controlled by setting this in your |vimrc|: let g:yankring_ignore_duplicate = 0 (1 is default) BF: Regression from version 1.4, the '.' operator may incorrectly insert garbage.
NF: YRToggle has been updated. If you toggle the yankring off (disable) the maps it creates are removed. Calling YRToggle again will recreate the maps. This truly disables the yankring, where the previous version attempted to do this via code. BF: Using the '.' operator was not corrected replaying operations that did not move text in some way (g~t_) changed the case of the text but a '.' did not replay it. BF: When replacing previously pasted text the yankring did not respect what key was used to paste the text originally. All replaced items were pasted using 'p', even if you had originally pasted the text with 'P'.