vim - 撤消粘贴而不撤消之前的输入

标签 vim paste undo

在 vim 中,我经常在从系统剪贴板中粘贴困惑的内容后,最终撤消的内容超出了我想要的范围。有更好的办法吗?

重现:

Open iTerm      # or terminal
vi              # open vim
i               # enter insert mode
type some stuff
Cmd-V           # paste the contents of the OS X clipboard

粘贴一团糟,因为我没有:set Past。所以

Esc # enter command mode
u   # undo

但这会撤销我的打字和粘贴。

我可以使用不同的撤消功能吗?除了记住在粘贴之前 :set Paste 之外,还有更好的方法来做到这一点吗?

最佳答案

这不是您正在寻找的答案,但您确实应该停止使用 vim 作为非模式编辑器。如果你想粘贴,请返回正常模式并使用 vim 的粘贴命令。 假设您有一个具有剪贴板访问权限的 vim 版本,这应该可以解决问题 "+p。您还可以通过将未命名寄存器设置为 + (或 *) 注册,这样从剪贴板粘贴就变成了一个简单的 p

以下问题有一个很好的答案,其中包含所有这些信息 How to make vim paste from (and copy to) system's clipboard? .

关于vim - 撤消粘贴而不撤消之前的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33643493/

相关文章:

ruby - 如何使用 Vim 从 do 跳转到 Ruby block 的末尾?

c++ - Qt - 复制一个 QTableWidget 的数据并将其粘贴到另一个 QTableWidget

r - 修改 R 函数内的变量名和变量

mercurial - 如何撤消 Mercurial 更新

vim - 在CtrlP中,如何将 `mru`模式设置为默认模式?

vim - 更好的 VIM 语法高亮显示

vim - 如何让vim运行shell命令而不卡住屏幕

vim - 在插入模式下粘贴时如何避免插入模式映射?

emacs - 如何在 emacs 中撤消 call-last-kbd-macro

git - 撤消尚未推送的 Git merge