如何让 vim 保留其撤消历史?

Jer*_*err 37 vim

如果我正在使用 vim 编辑两个文件,更改为另一个文件 ( :bnext, :bprev ) 似乎会从打开的文件中删除撤消历史记录 - 点击 'u' 键报告“已经是最旧的更改”。

例如:

  1. vim testfile1 testfile2
  2. 添加一些东西到 testfile1
  3. :w
  4. :bn
  5. :bp
  6. u
  7. 哎呀!无法撤消!

有没有办法为不可见缓冲区保留此历史记录?

fra*_*ous 45

最新版本的 vim (7.3) 具有持久性撤消功能,因此您可以进行更改、完全关闭 vim(甚至关闭并重新启动)、重新启动 vim 和撤消。在您的.vimrc

" tell it to use an undo file
set undofile
" set a directory to store the undo history
set undodir=/home/yourname/.vimundo/
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您必须先创建目录,vim 不会自动创建。使用文件系统路径保存撤消文件(在保存文件的同时)。如果你在`/home/peter`,那么编辑`.bashrc` 将创建文件`/home/peter/.vimundo/%home%peter%.bashrc`。 (12认同)

Jer*_*err 21

看起来这会做到:

:set hidden
Run Code Online (Sandbox Code Playgroud)

(在 .vimrc 中)