如何自动在VIM中自动使用git mailmap文件



i使用mailmap文件作为某些git存储库。文件中的行可以以这些格式之一:

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重新恢复为MailMap文件(例如,如果新名称太大,对于列大小)?我想这样的自动参数可能是可能的:

autocmd BufWritePre mailmap :<reformat_cmd>

,但我不确定如何实现实际命令。

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

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

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

最新更新