tpope / vim-repeat

repeat.vim: enable repeating supported plugin maps with "."
http://www.vim.org/scripts/script.php?script_id=2136
2.58k stars 81 forks source link

Avoid existing keymap override #93

Open KSR-Yasuda opened 2 years ago

KSR-Yasuda commented 2 years ago

It looks overriding some keymaps.

It already checks existing keymap for U, though, also other keymaps ., u, <C-R> should do so, shouldn't them?

Related with the issue https://github.com/tpope/vim-repeat/issues/91, too.

How to Repro

" Check existing keymaps.
" Here some keymaps exist for `machakann/vim-highlightedundo` plugin.
:nmap . | nmap u | nmap U | nmap <C-R>
" No mapping found
" n  u             <Plug>(highlightedundo-undo)
" n  U             <Plug>(highlightedundo-Undo)
" n  <C-R>         <Plug>(highlightedundo-redo)

" Insert some text
i
foobar

" Still key mapping is not overrode yet.
:nmap . | nmap u | nmap U | nmap <C-R>
" No mapping found
" n  u             <Plug>(highlightedundo-undo)
" n  U             <Plug>(highlightedundo-Undo)
" n  <C-R>         <Plug>(highlightedundo-redo)

"---------------------------------------------------------------

" Use `tpope/vim-surround` plugin.
yss'

" Then, some of keymaps are overrode
:nmap . | nmap u | nmap U | nmap <C-R>
" n  .             <Plug>(RepeatDot)
" n  u             <Plug>(RepeatUndo)
" n  U             <Plug>(highlightedundo-Undo)
" n  <C-R>         <Plug>(RepeatRedo)
.vimrc
" vim: ft=vim et ts=4 sts=4 sw=4

" Vundle

set nocompatible               " be iMproved
filetype off                   " required!
set rtp+=~/.vim/bundle/Vundle.vim

call vundle#begin()

"-------------------------------------------------------------------------------

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

"...............................................................................

Plugin 'tpope/vim-repeat'
Plugin 'tpope/vim-surround'

Plugin 'machakann/vim-highlightedundo'

nmap u     <Plug>(highlightedundo-undo)
nmap <C-r> <Plug>(highlightedundo-redo)
nmap U     <Plug>(highlightedundo-Undo)
nmap g-    <Plug>(highlightedundo-gminus)
nmap g+    <Plug>(highlightedundo-gplus)

"-------------------------------------------------------------------------------

call vundle#end()           " required
filetype plugin indent on   " required!