gpt4 book ai didi

linux - 如何在 Vim 中保存时自动格式化 git mailmap 文件?

转载 作者:太空宇宙 更新时间:2023-11-04 11:53:53 25 4
gpt4 key购买 nike

我将 mailmap 文件用于一些 git 存储库。文件中的行可以是这些行之一 formats :

Proper Name <commit@email.xx>
<proper@email.xx> <commit@email.xx>
Proper Name <proper@email.xx> <commit@email.xx>
Proper Name <proper@email.xx> Commit Name <commit@email.xx>

我想将这些行格式化为一个表格,其中的列用 2 个空格分隔,例如

Some Dude     <some@dude.xx>              <bugs@company.xx>
Other Author <other@author.xx> <bugs@company.xx>
Other Author <other@author.xx> <nick2@company.xx>
Santa Claus <santa.claus@northpole.xx> <me@company.xx>

如何让 Vim 在保存时以这种方式重新格式化邮件映射文件(例如,如果新名称对于列大小而言太大)?我想使用这样的自动命令是可能的:

autocmd BufWritePre mailmap :<reformat_cmd>

但我不确定如何执行实际命令。

最佳答案

如果您使用的是 Linux,则可以使用 column。但是我们需要标记每列首先结束的位置。为此,我使用 sed 在每个部分之前添加 #:

:autocmd BufWritePost mail silent :%!sed 's/^\([^<]\+\)\?*\(<[^>]\+>\)*\([^<]\+\)\?*\(<[^>]\+>\)\?/\1 \#\2 \#\3
\#\4/' | column -t -s '\#'

您应该能够轻松地扩展它和/或直接在 BufWritePre 上的 vim 中使用 s 命令。

关于linux - 如何在 Vim 中保存时自动格式化 git mailmap 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55086763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com