Mercurial > vim
changeset 20025:18043e7ab449 v8.2.0568
patch 8.2.0568: the man filetype plugin overwrites the unnamed register
Commit: https://github.com/vim/vim/commit/55b0fb7001ae42a58c10ad93a9157113f77a43d2
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Apr 13 14:58:37 2020 +0200
patch 8.2.0568: the man filetype plugin overwrites the unnamed register
Problem: The man filetype plugin overwrites the unnamed register.
Solution: Use the black hole register. (Jason Franklin)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 13 Apr 2020 15:00:03 +0200 |
parents | bb6aa55d2e24 |
children | 0017b6fea4b0 |
files | runtime/ftplugin/man.vim src/testdir/test_man.vim src/version.c |
diffstat | 3 files changed, 26 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/ftplugin/man.vim +++ b/runtime/ftplugin/man.vim @@ -1,7 +1,7 @@ " Vim filetype plugin file " Language: man " Maintainer: SungHyun Nam <goweol@gmail.com> -" Last Change: 2020 Apr 6 +" Last Change: 2020 Apr 13 " To make the ":Man" command available before editing a manual page, source " this script from your startup vimrc file. @@ -188,7 +188,7 @@ func <SID>GetPage(cmdmods, ...) setl buftype=nofile noswapfile setl fdc=0 ma nofen nonu nornu - silent exec "norm! 1GdG" + %delete _ let unsetwidth = 0 if empty($MANWIDTH) let $MANWIDTH = winwidth(0) @@ -213,10 +213,10 @@ func <SID>GetPage(cmdmods, ...) endif " Remove blank lines from top and bottom. while line('$') > 1 && getline(1) =~ '^\s*$' - silent keepj norm! ggdd + 1delete _ endwhile while line('$') > 1 && getline('$') =~ '^\s*$' - silent keepj norm! Gdd + $delete _ endwhile 1 setl ft=man nomod
--- a/src/testdir/test_man.vim +++ b/src/testdir/test_man.vim @@ -1,3 +1,5 @@ +" Test specifically for the Man filetype plugin. + runtime ftplugin/man.vim func Test_g_ft_man_open_mode() @@ -111,3 +113,21 @@ func Test_local_options() %bw! set foldcolumn& number& endfunc + +" Check that the unnamed register is not overwritten. +func Test_keep_unnamed_register() + %bw! + + let @" = '---' + + let wincnt = winnr('$') + Man vim + if wincnt == winnr('$') + " Vim manual page cannot be found. + return + endif + + call assert_equal('---', @") + + %bw! +endfunc