git diff 左侧显示行号(格式化输出)
文章目录
- 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 左侧显示行号(格式化输出)相关推荐
- vs2017常用设置 显示行号 格式化代码(Python)
vs2017常用设置 显示行号 格式化代码(Python) 第一步; 第二步: 搞定!!!!
- C# RichTextBox 做简单的HTML代码编辑器 ---------左侧显示行号
说明:此显示行号为实际行号,不论是空行还是自动换行,都计算在内,跟实际IDE的行号不同,同步滚动会有半行高度以内的误差. 实现原理,在RichTextBox 编辑器左侧放置另一RichTextBox ...
- C# RichTextBox 做简单的HTML代码编辑器 ---------利用WinApi修正左侧显示行号 误差
说明:通过WinApi可以准确定准滚动位置. //行号 生成显示 这里rtbLineNum用的 RichTextBox,也可以用其它private void ShowLineNum(){rtbLine ...
- Python IDLE无法显示行号、Python IDLE shell里运行py文件
一.Python自带的IDLE shell里无法在左侧显示行号,在右下角会显示当前光标所处的位置(行号.列号). 但是程序报错时,无法根据行号及时查看到相应的行. 使用快捷键Alt+G可以定位到指定的 ...
- linux环境(centos7)编辑文件如何显示行号
1.输入vi或者vim编辑文件,进入文件内容窗口,如下图 [root@localhost html]# vim indexone.html 2.进入文件内容窗口,按[Esc],然后按[Shift]+[ ...
- python显示行数_jupyter notebook实现显示行号
Jupyter Notebook默认不显示行号,可是当我们代码报错时,发现会显示自己多少行出现错误. eg: 这时候我们总不能一行行去数吧,因此,为了方便我们调试排错.我们需要让jupyter not ...
- 【Android】Source Insight 基本用法 ( 导入 Android 源码 | 设置字体 | 显示行号 | 搜索功能 | 快捷键设置 )
文章目录 一.导入 Android 源码 二.配置字体 三.显示行号 四.Tab 键字符个数 五.搜索功能 六.打开文件列表 七.快捷键设置 在 [Android 系统开发]使用 Source InS ...
- WinEdt显示行号
WinEdt显示行号 方法一: 快捷键Alt+= 方法二: 在编辑窗口中右键点击左侧边框,[右键]-[Show Line Numbers]. 若要取消行号,在左侧边框上[右键]-[Hide Line ...
- python print %s 号格式化输出
python %号格式化输出: 一种字符串格式化的语法, 基本用法是将值插入到%s占位符的字符串中. %s,表示格式化一个对象为字符 "%±(正负号表示)3(数字表示字符串的长度)s&quo ...
最新文章
- oracle触发器 条件,oracle触发器的定义和使用
- pve rust 能拆家吗_RUST:2020年9月第四周:向上向上再向上!
- vim实用技巧-笔记(第九章)
- Mac 删除应用卸载后无法正常移除的图标
- Java队列集合的性能测试
- java文件读写操作类
- Linux——查看系统的日志的一些实用操作
- web前端学习:1分钟了解JavaScript基础语法规则
- npm无法下载任何东西其中的一个原因
- ROS2——南溪的ROS2使用手册
- Hadoop Yarn源码 - day1
- 第二十节,使用RNN网络拟合回声信号序列
- oracle 052 题库变了,oracle ocp题库变化,052新加的考试题收集整理-30
- matlab中输出汉字的函数,matlab中的输出显示函数
- 单片机和嵌入式的区别
- LC-3下汇编实现简易版四子棋的游戏
- “龙腾计划”启动!邀请 500 家企业加入,与龙蜥社区一起拥抱无限生态
- windows和linux共用蓝牙鼠标,Ubuntu和Windows双系统蓝牙设备共享配对
- psql: FATAL: the database system is in recovery mode - 问题定位方法与解决
- web前端攻城狮 学习笔记——HTML基础
热门文章
- java底层 —反射、动态代理
- 知道吗?你们求的这些网站占据了互联网流量的30%甚至更高(科普贴)
- PDF文件转成图片保存
- MYSQL 5.7 普通表在线转分区表
- 蚂蚁变大象:浅谈常规网站是如何从小变大的(五)
- Thinkphp5+ phpqrcode 在线批量生成二维码图片并保存在本地
- 评估指标(Metric)(二)
- MATLAB算法实战应用案例精讲-【人工智能】基于机器视觉的机器人及机械臂运动规划(补充篇)
- 国开电大 比较初等教育 形考任务阶段性测验1-4
- python中if in是什么意思_在if语句中“ in”的使用和含义?