Vim 中的持久撤消
Vim中的持久撤消
阅读文本大约需要俩分钟。
在 Vim 中像其他文本编辑器一样,你可以在当前会话中执行 “撤销/重做” 。当一旦会话关闭,则你需要重新打开一个新文章,运行撤销将不再有效 - 因为你已经处于初始状态。
**Vim 支持永久撤销,这意味着甚至你可以从以前的会话 “撤销/重做” **
这的确是一个伟大的功能。这样你就可以把已更改的任意文件回溯历史(状态)。
**它如何工作的? **Vim 为你编辑的每个文章创建隐藏的文件,它存储撤消历史记录。  现在,配置非常简单。 您只能将此行添加到您的 .vimrc 中:
set undofile 
" Maintain undo history between sessions`
然后它就可以工作。
然而,Vim会写在同一目录中编辑文件撤消历史文件。一段时间,这会变得凌乱。你肯定也不想那样,这就是为什么,我建议你完成接下来的两个步骤。
首先,为这些 ”撤销历史文件“ 建立一个专门的目录,通过像运行一个命令:
$ mkdir ~/.vim/undodir
我的假设是 〜/ .vim 是您的 Vim 目录,其中.vimrc 。
一旦创建好目录,你只需要添加一行到您的 .vimrc 文件中:
set undodir=~/.vim/undodir
就这样。 Vim 会全部撤销历史文件存储在该目录中,你就会有完美的持久的撤销工作。
via: https://jovicailic.org/2017/04/vim-persistent-undo/
Vim 中的持久撤消的更多相关文章
- Linux环境下shell和vim中乱码原因及消除办法
		shell和vim中乱码原因及消除办法 作者:Jack47 在Linux下开发,经常遇到乱码问题:shell或者vim中显示不了中文,或者能够显示,但不能输入中文.每次都是上网去搜,或者同事告诉我一些 ... 
- 再谈vim中多窗口的编辑
		参考:http://blog.csdn.net/shuangde800/article/details/11430659 很好 鼠标在各个窗口间循环移动: ctrl+w+(小写的 hjkl), &qu ... 
- 在VIM中进行快速的查找和替换
		VIM是被誉为非常高效的文本编辑软件.但是掌握并高效的使用是件有难度的事情.在VIM中进行快速的查找和替换是提高VIM使用效率的重要方法.下面是我在阅读VIM用户手册时整理的一些资料: 行内搜索. f ... 
- vim中替换命令
		在VIM中进行文本替换: 1. 替换当前行中的内容: :s/from/to/ (s即substitude) :s/from/to/ : 将当前行中的 ... 
- vim中 set 用法设置
		vi set用法from google search一.常用收集如下:(vi set)set autoindent 在插入模式下,对每行按与上行同样的标准进行缩进,与shiftwidth选项结 ... 
- vim中输入tab符
		今天在写Makefile时各种出错.后来发现是all:的下一行,make前面必须是tab符,不能是空格. 但是vim中只要按tab就会自动转换成4个空格.平时编程需要,也不便把这个设置取消. 查了下, ... 
- vim 中 也可以 直接安装 emmet 直接使用zen coding 生成 l指定个数的 lorem ipsum文字.
		超链接的写法: 当作为链接的文字, 比较长时, 整个作为链接 就显得不是 很适合. 可以取其中的某一个单词 作为 超链接的 关键字:如: click here to continue emmet中如何 ... 
- vim中添加molokai.vim 配色安装
		无意中发现知乎中讨论的话题: 你认为最好看的 Vim 配色方案(color scheme)是哪款? 网友回答 排在第一位的是:molokai 啊,最经典的配色 既然molokai这么经典,当然要用了. ... 
- 解决vi/vim中粘贴会在行首多很多缩进和空格的问题
		解决vi/vim中粘贴会在行首多很多缩进和空格的问题 secureCRT会将你原来的文本原封不动的按照字符串的样式发送给服务器.所以当你的服务器上的vim设置为autoindent的话,在i模式下,那 ... 
随机推荐
- 新手C#string类常用函数的学习2018.08.04
			ToLower()用于将字符串变为小写,注意字符串的不可变特性,需要重新赋值给另一个字符串变量. s = s.ToLower();//字符串具有不可变性,转换后需要重新赋值,不可仅有s.ToLower ... 
- python变量作用域
			[python变量作用域] 几个概念: python能够改变变量作用域的代码段是def.class.lamda. if/elif/else.try/except/finally.for/while 并 ... 
- 从值栈获取List集合
			-------------------siwuxie095 从值栈获取 List 集合 1.具体步骤 (1)在 Action 中向值栈放 List 集合 (2)在 JSP 页面中从值栈获取 List ... 
- JavaScript Math.floor() 方法
			定义和用法: floor() 方法可对一个数进行下舍入. 语法: Math.floor(x); x:必须参数,可以是任意数值或表达式: 返回值: 小于等于 x,且与 x 最接近的整数. 说明: flo ... 
- git 查询某人的提交记录
			git log --author=liubo --name-only 
- ASP.NET Web API之消息[拦截]处理(转)
			出处:http://www.cnblogs.com/Leo_wl/p/3238719.html 标题相当难取,内容也许和您想的不一样,而且网上已经有很多这方面的资料了,我不过是在实践过程中作下记录.废 ... 
- .net 分布式架构之分布式锁实现(转)
			分布式锁是控制分布式系统之间同步访问共享资源的一种方式.在分布式系统中,常常需要协调他们的动作.如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防 ... 
- Android 上传文件到XP
			Android部分: AsyncHttpClient client = new AsyncHttpClient(); RequestParams requestParams = new Request ... 
- guestfish修改镜像内容
			1.安装guestfish yum install libguestfs-tools 注意,如果要修改windows镜像需要安装 yum install libguestfs-winsupport 2 ... 
- java消息中间件的使用与简介
			一.为什么要使用消息中间件 消息中间件就是可以省去繁琐的步骤,直达目的,怎么讲呢,就是比如你想很多人,知道你的动态,而知道的人可能手机没电,可能手机信号不好,可能手机不在服务区,或者看的人比较忙,看的 ... 
