3

当我在 vim 中录制和粘贴一个宏时,我得到了这样的结果:

<80>kl - these 3 characters (the <80> is just 1 character) represent <Left>
^[ - represents <Esc>
^M - represents <cr>

这不好,因为当我粘贴然后尝试编辑宏时,这些字符不那么清晰。

我只是想让 vim 使用这些更易读的缩写而不是那些神秘的废话来粘贴宏。或者,我可以在粘贴的行上运行以进行替换的功能可以正常工作。

4

1 回答 1

1

您可以使用像这样的简单函数将 , 等的每个出现(在当前行)^M替换^[为它们的替换项。您可以在发现需要时将额外条目添加到replacements字典中。

function! ReplaceWeirdCharacters()
  let replacements = {
    \ "\<C-[>": '<Esc>',
    \ "\<C-M>": '<CR>',
    \ "\u80kb": '<BS>'
    \}
  for [a, b] in items(replacements)
    execute "s/" . a . "/" . b . "/ge"
  endfor
endfunction
nnoremap <leader>rwc :call ReplaceWeirdCharacters()<CR>
于 2013-07-10T09:34:38.783 回答