vimrc 自动提交带消息提示

标签 vim commit autocommit

我在 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/

相关文章:

Mysql 提交有时需要几分钟才能完成

mysql - 将 AutoCommit 设置为 0 的 DBI 数据库句柄未通过 SELECT 返回正确的数据?

vim - 删除每行 "."之后的所有字符

Vim 拉出单词后替换命令

sql - 在事务中使用显式提交

xcode - 如何从 Xcode 8 上的先前提交中恢复?

php - 有没有办法在MySQL中获取自动提交的默认值?

读写模式下的 Git difftool

bash - Zsh 别名像 !gas inside vim?

xcode - 存储库已锁定 - 尝试提交到源代码管理时出错