让 vim 记住你的修改历史[视频]

让 vim 记住你的修改历史[视频]

让 vim 记录你的编辑历史https://www.zhihu.com/video/1133903651625185280

今天介绍几个和 vim 修改历史相关的命令和插件,让你快速找回编辑的历史内容或者上一次会话。 当然,一个好习惯是给你的项目都加上 git 版本控制。

熟悉 vim 的人都知道 vim 有个 undo 和 redo 功能,在normal模式下,使用 u 实现 undo, 使用 ctrl+r 实现 redo。(是不是想到了 mysql 的 undo 和 redo log)。通过 undo 和 redo, 你可以在最近的编辑历史中来回重放。

但是有个问题就是如果你退出 vim 之后重新打开,undo 记录就会消失,这里介绍下如何持久化他们的方式。 即使重新打开也不会丢失。当然除此之外我还会介绍其他一些和历史记录相关的有用功能,主要如下:

  • 持久化 undo/redo
" 在你的 vimrc 加入
set undofile " Maintain undo history between sessions
" 设置你的undo保存位置,你需要先 mkdir ~/.vim/undodir
set undodir=~/.vim/undodir
  • 可视化 undo 历史。需要借助插件 undotree
# 使用你的插件管理器 vim-plug , dein, vundle 等安装它即可
https://github.com/mbbill/undotree
  • 打开文件时跳转到之前最后一次编辑的位置。你可能在修改文件的时候经常打开历史文件的相同位置(我称之为:修改代码的局部性原理)
# 使用你的插件管理器 vim-plug , dein, vundle 等安装它即可
https://github.com/farmergreg/vim-lastplace
  • 使用 session 保存会话。比如你之前用 vim 分屏打开了多个文件,可以退出 vim 后快速恢复打开的这多个文件,而不用一个个重新查找打开。 笔者发现这个功能在多文件编辑的时候还是非常有用的。
# 使用你的插件管理器 vim-plug , dein, vundle 等安装它即可
https://github.com/xolox/vim-session

我会在视频里简单演示下这些功能,当然你可以根据自己的需求来选择使用这些配置或者插件,给日常编辑提供便利。

发布于 2019-07-15 01:03