文章目录

  • 1、问题描述
  • 2、环境
  • 3、效果
  • 4、实现

1、问题描述

我用git diff命令查看代码做了哪些修改时,发现显示的排版不符合我的预期,我希望能在排版左边显示删改的具体行号,且不同的文件的修改分隔开。

2、环境

  • 操作系统:Ubuntu 18.04.5 LTS
  • Git版本:git version 2.17.1

3、效果

我写了一个git-diff-lines命令,代替git diff命令,先看对比效果

git-diff-lines命令比起git diff命令排版上的优点:可在界面左侧显示具体修改了哪个文件的哪一行,视觉上更直观,且只显示添加/删除/修改的行,而不显示周围的上下文

4、实现

写一个格式化git diff输出的脚本git-diff-lines,并将脚本添加到环境变量里去,查看本机环境变量的路径用echo $PATH命令

wangtao@DESKTOP-1D526UH:~/work$ vim git-diff-lines
#!/bin/bash
diff-lines() {local path=local pathOld=local line=while read; doesc=$'\033'if [[ $REPLY =~ ---\ (a/)?.* ]]; thencontinueelif [[ $REPLY =~ \+\+\+\ (b/)?([^[:blank:]$esc]+).* ]]; thenpath=${BASH_REMATCH[2]}       #获取文件路径elif [[ $REPLY =~ @@\ -[0-9]+(,[0-9]+)?\ \+([0-9]+)(,[0-9]+)?\ @@.* ]]; thenline=${BASH_REMATCH[2]}       #获取添加/删除/修改的行elif [[ $REPLY =~ ^($esc\[[0-9;]+m)*([\ +-]) ]]; thenif [ "$path" != "$pathOld" ]; thenecho -e "\n\n$path:$line:$REPLY"  #不同文件间的修改用换行隔开elseecho "$path:$line:$REPLY"fiif [[ ${BASH_REMATCH[2]} != - ]]; then((line++))fipathOld=$pathfidone
}if [ "$1" != "" ]; then       #可查看单个文件的差异(方法:git-diff-lines  xxx.c)git diff -U0 --color=always --  "$1" | diff-lines
elsegit diff -U0 --color=always | diff-lines
fi
wangtao@DESKTOP-1D526UH:~/work$ chmod a+x git-diff-lines
wangtao@DESKTOP-1D526UH:~/work$ sudo cp git-diff-lines /usr/local/sbin

以后在代码工程任何目录下敲git-diff-lines命令,就能格式化输出代码修改差异啦!

参考
[1]: https://cloud.tencent.com/developer/ask/85412

git diff 左侧显示行号(格式化输出)相关推荐

  1. vs2017常用设置 显示行号 格式化代码(Python)

    vs2017常用设置 显示行号 格式化代码(Python) 第一步; 第二步: 搞定!!!!

  2. C# RichTextBox 做简单的HTML代码编辑器 ---------左侧显示行号

    说明:此显示行号为实际行号,不论是空行还是自动换行,都计算在内,跟实际IDE的行号不同,同步滚动会有半行高度以内的误差. 实现原理,在RichTextBox 编辑器左侧放置另一RichTextBox ...

  3. C# RichTextBox 做简单的HTML代码编辑器 ---------利用WinApi修正左侧显示行号 误差

    说明:通过WinApi可以准确定准滚动位置. //行号 生成显示 这里rtbLineNum用的 RichTextBox,也可以用其它private void ShowLineNum(){rtbLine ...

  4. Python IDLE无法显示行号、Python IDLE shell里运行py文件

    一.Python自带的IDLE shell里无法在左侧显示行号,在右下角会显示当前光标所处的位置(行号.列号). 但是程序报错时,无法根据行号及时查看到相应的行. 使用快捷键Alt+G可以定位到指定的 ...

  5. linux环境(centos7)编辑文件如何显示行号

    1.输入vi或者vim编辑文件,进入文件内容窗口,如下图 [root@localhost html]# vim indexone.html 2.进入文件内容窗口,按[Esc],然后按[Shift]+[ ...

  6. python显示行数_jupyter notebook实现显示行号

    Jupyter Notebook默认不显示行号,可是当我们代码报错时,发现会显示自己多少行出现错误. eg: 这时候我们总不能一行行去数吧,因此,为了方便我们调试排错.我们需要让jupyter not ...

  7. 【Android】Source Insight 基本用法 ( 导入 Android 源码 | 设置字体 | 显示行号 | 搜索功能 | 快捷键设置 )

    文章目录 一.导入 Android 源码 二.配置字体 三.显示行号 四.Tab 键字符个数 五.搜索功能 六.打开文件列表 七.快捷键设置 在 [Android 系统开发]使用 Source InS ...

  8. WinEdt显示行号

    WinEdt显示行号 方法一: 快捷键Alt+= 方法二: 在编辑窗口中右键点击左侧边框,[右键]-[Show Line Numbers]. 若要取消行号,在左侧边框上[右键]-[Hide  Line ...

  9. python print %s 号格式化输出

    python %号格式化输出: 一种字符串格式化的语法, 基本用法是将值插入到%s占位符的字符串中. %s,表示格式化一个对象为字符 "%±(正负号表示)3(数字表示字符串的长度)s&quo ...

最新文章

  1. oracle触发器 条件,oracle触发器的定义和使用
  2. pve rust 能拆家吗_RUST:2020年9月第四周:向上向上再向上!
  3. vim实用技巧-笔记(第九章)
  4. Mac 删除应用卸载后无法正常移除的图标
  5. Java队列集合的性能测试
  6. java文件读写操作类
  7. Linux——查看系统的日志的一些实用操作
  8. web前端学习:1分钟了解JavaScript基础语法规则
  9. npm无法下载任何东西其中的一个原因
  10. ROS2——南溪的ROS2使用手册
  11. Hadoop Yarn源码 - day1
  12. 第二十节,使用RNN网络拟合回声信号序列
  13. oracle 052 题库变了,oracle ocp题库变化,052新加的考试题收集整理-30
  14. matlab中输出汉字的函数,matlab中的输出显示函数
  15. 单片机和嵌入式的区别
  16. LC-3下汇编实现简易版四子棋的游戏
  17. “龙腾计划”启动!邀请 500 家企业加入,与龙蜥社区一起拥抱无限生态
  18. windows和linux共用蓝牙鼠标,Ubuntu和Windows双系统蓝牙设备共享配对
  19. psql: FATAL: the database system is in recovery mode - 问题定位方法与解决
  20. web前端攻城狮 学习笔记——HTML基础

热门文章

  1. java底层 —反射、动态代理
  2. 知道吗?你们求的这些网站占据了互联网流量的30%甚至更高(科普贴)
  3. PDF文件转成图片保存
  4. MYSQL 5.7 普通表在线转分区表
  5. 蚂蚁变大象:浅谈常规网站是如何从小变大的(五)
  6. Thinkphp5+ phpqrcode 在线批量生成二维码图片并保存在本地
  7. 评估指标(Metric)(二)
  8. MATLAB算法实战应用案例精讲-【人工智能】基于机器视觉的机器人及机械臂运动规划(补充篇)
  9. 国开电大 比较初等教育 形考任务阶段性测验1-4
  10. python中if in是什么意思_在if语句中“ in”的使用和含义?