You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改.bashrc为git commit -m输入添加指定偏移位置的颜色提示

实现步骤

要求Bash版本 ≥ 4.0,操作如下:

  1. 打开用户目录下的.bashrc文件
  2. 在文件末尾添加以下配置:
# 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'
  1. 保存文件后执行source ~/.bashrc即可生效。
注意事项
  • 配置中COMMIT_MSG_CHAR_LIMIT可自行修改为需要的偏移长度,示例默认值为50
  • 高亮样式可通过修改ANSI颜色码调整,默认使用红色背景作为提醒
  • 自动兼容单引号、双引号包裹的commit信息场景,不需要额外修改配置
  • 其他常规命令输入不受该配置影响,仅对git commit -m开头的输入生效

内容的提问来源于stack exchange,提问作者tuatara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 05:48:00