Вы переназначили F2 на :.y" :
и т. Д. .Вам нужно <cr>
не простое место.Если вы наберете :.y"
в vim и не нажмете ENTER, но пробел, ничего не произойдет.
Так что
:nnoremap <f2> :.y"<CR>:g/<C-R>"/d<CR>
может это сделать.
Тем не менее,предупреждение, если ваша строка содержит какой-либо из /\*[~$^.
, это может не сработать.Вы можете использовать регистр выражений для того, чтобы экранировать на месте:
:nnoremap <f2> :.y"<CR>:g/<c-r>=escape(@", '/\*[~$^.')<cr>/d<cr>
Еще лучше, без перезаписи вашего регистра по умолчанию ("
):
:nnoremap <f2> :g/^<c-r><c-o>=escape(getline('.'), '/\*[~$^.')<CR>$/d<cr>
, который удалитвсе одинаковые линии.Еще обратите внимание, что 'ignorecase'
или 'smartcase'
имеют значение.