如何修改.bashrc为git commit -m输入添加指定偏移位置的颜色提示
实现步骤
要求Bash版本 ≥ 4.0,操作如下:
- 打开用户目录下的
.bashrc文件 - 在文件末尾添加以下配置:
# Git commit 信息长度高亮配置 COMMIT_MSG_CHAR_LIMIT=50 # 高亮颜色定义:这里用红色背景,可自行修改ANSI颜色码 HIGHLIGHT_COLOR='\001\033[41m\002' RESET_COLOR='\001\033[0m\002' # 实时检查commit信息长度的处理函数 _highlight_commit_msg() { # 只处理匹配 git commit -m 开头的输入行 if [[ $READLINE_LINE =~ ^git\ commit\ -m\ ([\'\"]) ]]; then # 获取引号的位置 quote_char=${BASH_REMATCH[1]} quote_pos=$(expr index "$READLINE_LINE" "$quote_char") if [[ $quote_pos -gt 0 ]]; then # 计算引号后的内容长度 msg_content=${READLINE_LINE:$quote_pos} msg_length=${#msg_content} # 超过阈值则触发高亮 if [[ $msg_length -gt $COMMIT_MSG_CHAR_LIMIT ]]; then # 拆分内容,在阈值位置插入高亮 part1=${READLINE_LINE:0:$((quote_pos + COMMIT_MSG_CHAR_LIMIT))} part2=${READLINE_LINE:$((quote_pos + COMMIT_MSG_CHAR_LIMIT))} # \001和\002标记非打印字符,避免bash换行计算错误 READLINE_LINE="${part1}${HIGHLIGHT_COLOR}${part2}${RESET_COLOR}" READLINE_POINT=${#READLINE_LINE} fi fi fi } # 绑定到回车键执行检查,不会将ANSI控制字符带入实际提交内容 bind -x '"\C-m": _highlight_commit_msg; accept-line'
- 保存文件后执行
source ~/.bashrc即可生效。
注意事项
- 配置中
COMMIT_MSG_CHAR_LIMIT可自行修改为需要的偏移长度,示例默认值为50 - 高亮样式可通过修改ANSI颜色码调整,默认使用红色背景作为提醒
- 自动兼容单引号、双引号包裹的commit信息场景,不需要额外修改配置
- 其他常规命令输入不受该配置影响,仅对
git commit -m开头的输入生效
内容的提问来源于stack exchange,提问作者tuatara
相关产品推荐
相关产品推荐

