vimrc自动提交/消息提示

时间:2013-11-02 23:53:40

标签: vim commit autocommit

我在vimrc中使用以下命令自动提交保存。我发现这非常有用。但是我不喜欢我每次都坚持使用相同的提交消息。

autocmd BufWritePost * execute ':silent ! if git rev-parse --git-dir > /dev/null 2>&1 ; then git add % ; git commit -m "Auto-commit: saved %"; fi > /dev/null 2>&1'

我想要的是在保存时收到提示,允许我提供提交消息或按Enter键并在我赶时间时使用“自动提交:已保存的%”作为默认值。

我和input()一起玩,并且在这个特定的命令中没有运气。

我还尝试使用函数返回的值,但无法使其工作。

1 个答案:

答案 0 :(得分:2)

input()是一个内置函数,您将其结果分配给变量,然后可以将其内容插入(通过适当的转义)到外部shell命令中:

autocmd BufWritePost * let message = input('Message? ', 'Auto-commit: saved ' . expand('%')) | execute ':silent ! if git rev-parse --git-dir > /dev/null 2>&1 ; then git add % ; git commit -m ' . shellescape(message, 1) . '; fi > /dev/null 2>&1'

这个将查询每次保存。添加条件后,可以在没有给出消息时中止提交。