TL; 博士; 版本 - 如何撤消从操作系统复制缓冲区粘贴的文本,而不撤消进入插入模式后输入的其他文本?
更长的描述:
Command-c
在 Mac 上执行)i
) 中进入插入模式asdf
)Command-v
在 Mac 上)escape
u
)它会撤消上次进入插入模式时的所有内容。换句话说,它清除了asdf
我粘贴的所有文本。
如何刚刚撤消粘贴文本?在粘贴文本之前,我是否必须始终退出插入模式并返回,以便可以选择撤消粘贴的文本?
一种方法是在粘贴之前明确退出并返回到插入模式。如果扩展粘贴命令,还可以在粘贴之前自动设置撤消点:
" Any text fragment pasted in insert mode should be undone separately, without
" destroying what was typed before.
inoremap <C-R> <C-G>u<C-R>
Run Code Online (Sandbox Code Playgroud)
以上是针对内置i_CTRL-R
命令的。我不知道Command-v
MacVim 中是如何实现的,但<C-G>u
在:imap
命令前面应该可以达到相同的效果。