我在 vimrc 中使用以下命令在保存时自动提交。我发现这非常有用。但是我不喜欢每次都被相同的提交消息所困扰。
autocmd BufWritePost * 执行 ':silent !如果 git rev-parse --git-dir >/dev/null 2>&1 ;然后 git add % ; git commit -m "自动提交:已保存%"; fi >/dev/null 2>&1'
我想要的是在保存时收到提示,允许我提供提交消息或按 Enter 并在我匆忙时使用“自动提交:已保存%”作为默认值。
我尝试了 input()
,但在这个特定命令中没有任何运气。
我还尝试使用函数返回的值,但也无法使其工作。
最佳答案
input()
是一个内置函数,您将其结果分配给一个变量,然后可以将其内容插入(通过适当的转义)到您的外部 shell 命令中:
autocmd BufWritePost * let message = input('消息? ', '自动提交:已保存' .expand('%')) |执行':沉默!如果 git rev-parse --git-dir >/dev/null 2>&1 ;然后 git add % ; git commit -m ' . shellescape(消息, 1) 。 '; fi >/dev/null 2>&1'
这个将在每次保存时进行查询。通过添加条件,您可以使其在没有给出消息时中止提交。
关于vimrc 自动提交带消息提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19748286/