小编Lui*_*rit的帖子

如何暂停 VIM 历史记录?

当我们编辑一个文件时,我们通常会连续执行很多次 UNDO,比如 20 次。在 VIM 中,这通常通过按u20 次来执行,这会使 VIM 在历史堆栈中“上升”20 个位置。如果您随后进行了确定change,那么所有最后 20 个历史命令都将丢失,并由change. 我想在change不失去这 20 个位置的情况下进行。所以我想我想告诉VIM在我做之前停止记录历史change,然后恢复历史(不想change在历史中)。

编辑 试图更清楚:我有一个函数FF,可以在写入缓冲区时更新文件的最后几行。所以,如果我执行20 undos + write,最后一个write打开一个新的撤消分支。我尝试undojoin在内部添加FF(尝试遵循下面 jlmg 的建议),但是序列 write-undo-write 给出了一个错误:undojoint not allowed after undo。我可以sed ....在离开后做一些事情vim,但由于我通过它使用它,SSH我更喜欢仅使用vim 的解决方案(卸载缓冲区后执行命令不会写入文件)。

编辑 2尝试在 VIM 中执行此操作:打开一个空白文件,然后执行:

i1<ESC>:wa2<ESC>:wa3<ESC>:wa4<ESC>uu:w
Run Code Online (Sandbox Code Playgroud)

如果现在你做了一个<CTRL>R,VIM 会写回 '3',进一步<CTRL>R你会得到4. 即使:w在 each …

vim

8
推荐指数
1
解决办法
998
查看次数

标签 统计

vim ×1