如何巧用vimdiff来替代原始的svn diff和git diff(效率提升)

有许多命令行选手在linux下开发的时候会经常遇到一个问题,无论是svn还是git,提供的原始diff功能太难以阅读,我们希望的是能够命令行下也能展示side by side的对比模式,而不是inline的方式,这里我们提供了一个小技巧来解决眼睛疼的问题。

1.Vimdiff替代svn diff

1)编写脚本

执行vim diffwrap.sh,添加如下内容(输入:i,然后右键复制原文,粘接内容到终端):

#!/bin/sh

#过滤掉svn diff的前五个命令行参数

shift 5

#使用vimdiff比较文件

vimdiff "$@"

2)修改~/.subversion/config,找到如下配置行:

# diff-cmd = diff_program (diff, gdiff, etc.)

修改成:

diff-cmd = /usr/local/bin/diffwrap.sh

这里你需要替换成你的地址,一般建议把diffwrap.sh拷贝到/usr/local/bin/下面。

2.Vimdiff替代git diff

默认的git diff是这样的,如下图:

1)在命令行执行如下命令,让git diff使用vimdiff的效果

git config --global diff.tool vimdiff

git config --global difftool.prompt false

git config --global alias.d difftool

2)使用方式

执行git d README.txt查看单文件

执行git d查看所有diff,看完使用:qa退出当前diff查看,会自动跳转到下一个。

总结

到此这篇关于如何巧用vimdiff来替代原始的svn diff和git diff(效率提升)的文章就介绍到这了,更多相关vimdiff替代svn diff和git diff内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 浅谈pandas中shift和diff函数关系

    通过?pandas.DataFrame.shift命令查看帮助文档 Signature: pandas.DataFrame.shift(self, periods=1, freq=None, axis=0) Docstring: Shift index by desired number of periods with an optional time freq 该函数主要的功能就是使数据框中的数据移动,若freq=None时,根据axis的设置,行索引数据保持不变,列索引数据可以在行上上下移动

  • vue的diff算法知识点总结

    源码:https://github.com/vuejs/vue/blob/dev/src/core/vdom/patch.js 虚拟dom diff算法首先要明确一个概念就是diff的对象是虚拟dom,更新真实dom则是diff算法的结果 Vnode基类 constructor ( ... ) { this.tag = tag this.data = data this.children = children this.text = text this.elm = elm this.ns = u

  • Python 比较文本相似性的方法(difflib,Levenshtein)

    最近工作需要用到序列匹配,检测相似性,不过有点复杂的是输入长度是不固定的,举例为: input_and_output = [1, 2, '你好', 世界', 12.34, 45.6, -21, '中国', '美丽'] 其中,需要从input_and_output 中选取不固定长度的一段作为输入,且顺序不定,然后去与总体进行比较,找出最符合的,开始是对汉字进行数值化编码,不过后来由于出现汉字越来越多,遂放弃该方法,转向别的方式,查找资料发现了两个python包广被推荐,从下面来看各有优缺点,记录之

  • 用python标准库difflib比较两份文件的异同详解

    [需求背景] 有时候我们要对比两份配置文件是不是一样,或者比较两个文本是否异样,可以使用linux命令行工具diff a_file b_file,但是输出的结果读起来不是很友好.这时候使用python的标准库difflib就能满足我们的需求. 下面这个脚本使用了difflib和argparse,argparse用于解析我们给此脚本传入的两个参数(即两份待比较的文件),由difflib执行比较,比较的结果放到了一个html里面,只要找个浏览器打开此html文件,就能直观地看到比较结果,两份文件有差

  • 如何巧用vimdiff来替代原始的svn diff和git diff(效率提升)

    有许多命令行选手在linux下开发的时候会经常遇到一个问题,无论是svn还是git,提供的原始diff功能太难以阅读,我们希望的是能够命令行下也能展示side by side的对比模式,而不是inline的方式,这里我们提供了一个小技巧来解决眼睛疼的问题. 1.Vimdiff替代svn diff 1)编写脚本 执行vim diffwrap.sh,添加如下内容(输入:i,然后右键复制原文,粘接内容到终端): #!/bin/sh #过滤掉svn diff的前五个命令行参数 shift 5 #使用vi

  • Flex tree加虚线显示效果并且替代原始图标

    一.Flex tree修改默认图标,并且加虚线显示效果图如下:  实在是看不下去那种巨丑无比的小箭头+文件夹的显示方式,就从网上down了一份加虚线的源码,就是重写Tree的ItemRender,网上很多,不在啰嗦,下面就是去掉 复制代码 代码如下: mx|Tree { folderOpenIcon:ClassReference(null); folderClosedIcon:ClassReference(null); } 至于为什吗去掉这个样式,狗日的Flex有两个默认图标,如果你发现你有类似

  • SQLServer性能优化--间接实现函数索引或者Hash索引

    SQLServer中没有函数索引,在某些场景下查询的时候要根据字段的某一部分做查询或者经过某种计算之后做查询,如果使用函数或者其他方式作用在字段上之后,就会限制到索引的使用,不过我们可以间接地实现类似于函数索引的功能. 另外一个就是如果查询字段较大或者字段较多的时候,所建立的索引就显得有点笨重,效率也不高,就需要考虑使用一个较小的"替代性"字段做等价替换,类似于Hash索引, 本文粗浅地介绍两种上述两种问题的解决方式,仅供参考. 1,在计算列上建索引,实现"函数索引"

  • SQL 优化

    (一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引)和非聚集索引(nonclustered index,也称非聚类索引.非簇集索引).下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引.比如,我们要查"安"字,就会很自然地翻开字典的前几页,因为"安"的拼音是"an",而按照

  • 基于Node.js的强大爬虫 能直接发布抓取的文章哦

    一.环境配置 1)搞一台服务器,什么linux都行,我用的是CentOS 6.5: 2)装个mysql数据库,5.5或5.6均可,图省事可以直接用lnmp或lamp来装,回头还能直接在浏览器看日志: 3)先安个node.js环境,我用的是0.12.7,更靠后的版本没试过: 4)执行npm -g install forever,安装forever好让爬虫在后台跑: 5)把所有代码整到本地(整=git clone): 6)在项目目录下执行npm install安装依赖库: 7)在项目目录下创建jso

  • SQL Server 2000中的触发器使用

    下面我摘录了SQL Server官方教程中的一段关于触发器的文字,确实有用的一点文字描述. 可以定义一个无论何时用INSERT语句向表中插入数据时都会执行的触发器. 当触发INSERT触发器时,新的数据行就会被插入到触发器表和inserted表中.inserted表是一个逻辑表,它包含了已经插入的数据行的一个副本.inserted表包含了INSERT语句中已记录的插入动作.inserted表还允许引用由初始化INSERT语句而产生的日志数据.触发器通过检查inserted表来确定是否执行触发器动

  • 海量数据库查询语句

    以下代码说明了我们实例中数据库的"红头文件"一表的部分数据结构: CREATE TABLE [dbo].[TGongwen] (    --TGongwen是红头文件表名   [Gid] [int] IDENTITY (1, 1) NOT NULL ,--本表的id号,也是主键   [title] [varchar] (80) COLLATE Chinese_PRC_CI_AS NULL ,  --红头文件的标题   [fariqi] [datetime] NULL ,--发布日期  

  • sqlserver 触发器实例代码

    定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有三种:分别应用于Insert , Update , Delete 事件. 我为什么要使用触发器?比如,这么两个表: 复制代码 代码如下: Create Table Student( --学生表 StudentID int primary key, --学号 .... ) Create Table BorrowRecord( --学生借书记录表

  • 海量数据库的查询优化及分页算法方案

    海量数据库的查询优化及分页算法方案  原出处不详 摘自:www.21php.com 随着"金盾工程"建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种.各部门.与此同时,应用系统体系的核心.系统数据的存放地――数据库也随着实际应用而急剧膨胀,一些大规模的系统,如人口系统的数据甚至超过了1000万条,可谓海量.那么,如何实现快速地从这些超大容量的数据库中提取数据(查询).分析.统计以及提取数据后进行数据分页已成为各地系统管理员和数据库管理员亟待解决的难题. 在以下

  • Linux下快速比较两个目录的不同(多种方法)

    曾多次想要在Linux下比较目录a和目录b中文件列表的差别,然后对目录a比目录b中多出的文件.少掉的文件分别做处理.但是,在网上搜索了多次也都没找到能直接处理好的工具. 所以想了很多不少方法,自我感觉都不错,而且网上似乎没有这方面的文章,所以分享出来给大家.如果各位有更好的工具或者方法,盼请留下说明(本文第2部分:图形化的比较结果搜集自网上,我也没有在图形化界面下操作的需要,所以没有多做介绍) 以下是本文有些地方涉及到的目录结构. [root@node1 ~]# tree directory1

随机推荐