我只是使用
<C-r>
从错误的寄存器粘贴了文本,我有两个选择:手动删除我刚刚粘贴的内容并重新开始。
切换到普通模式,按
u
并丢失我在按<C-r>
之前输入的文字。还有更好的方法吗?
/>
#1 楼
Vim提供了有限的能力来使用Ctrl-G u
命令指定不可撤消更改的范围,这会破坏撤消顺序。请参见:help i_CTRL-G_u
对于您而言,解决方案是像这样重新映射
<C-R>
:键入<C-O>u
只会撤消自键入<C-R>
以来所做的更改。请参见:inoremap <C-R> <C-G>u<C-R>
#2 楼
在插入模式下:如果粘贴的文本小于一行(这就是第二点所指),只需按
<C-u>
即可删除当前行中光标之前的所有字符。 br />如果粘贴的文本多于一行,则您的第二个解决方案将更好地工作,其适应性如下:<C-o>u
。它们实际上与您提出的解决方案相同,只是将其简化了一些:) #3 楼
您可以尝试<C-w>
(在左侧删除一个单词)或<C-u>
(在按下一次时清除光标之前的字符,再次按下时删除换行符)。请参阅:help i_CTRL-W
和:help i_CTRL-U
。如果从寄存器中粘贴很多内容,撤消更改当然更快,则可以对
<C-o>
使用insert-normal-mode(执行一个普通模式命令,然后返回插入模式)。通常,经常返回正常模式将编辑分成小块是有帮助的,这样您可以细粒度地撤消操作。
评论
太好了,我不知道这个命令。在键入
– zool
15年8月28日在8:35
我也注意到了。我不知道;我会尝试找出答案。
–加里约翰
15年8月28日在14:49
嘿,您可能是说
–德文特
18'八月7'在1:31
否。最初的问题与
–加里约翰
18年8月7日在6:11