在 Vim 编辑器中,当我在正常模式下输入“u”时,它会撤消上一个会话中所做的所有更改,而不是一行。有人能帮忙解决吗?
答案1
One undo command normally undoes a typed command, no matter how many changes
that command makes. This sequence of undo-able changes forms an undo block.
Thus if the typed key(s) call a function, all the commands in the function are
undone together.
进一步来说:
To do the opposite, use a new undo block for the next change, in Insert mode
use CTRL-G u. This is useful if you want an insert command to be undoable in
parts.
如果你总是想要逐行撤消块,你可以使用类似以下方法:
:inoremap <cr> <c-g>u<cr>
它将在您按下“Insert”模式<C-g>u
时自动包含。如果您一次输入了多行,则会撤消您输入的最后一行。Enteru
答案2
其按键是 Shift-u(即大写 U)。
与“u”不同,“U”对您所在的行进行“撤消”操作,并且被视为一项操作(意味着它可以通过“u”命令“撤消”)。
在普通模式下输入:help U
vim 可以查看有关“U”命令的更详细文档。