我想创建一个 bash 脚本来自动执行我经常执行的一系列 Git 操作,以将未暂存的更改应用到早期提交,如下所示:
- 隐藏更改;
- 输入交互式变基;
- 编辑有问题的提交;
- 将藏匿物应用到它上面;
- 完成变基。
问题是,其中一些操作会打开 Vim,并且我不确定如何使用 bash 脚本编辑/写入文件。我不想手动执行此操作。
有没有办法使用 bash 在 Vim 中自动编辑?有没有更好的方法来做到这一点,涵盖 Vim 不是默认编辑器的情况?
答案1
我想当 git 期望你输入描述性消息时,VIM 总是会打开。您可以通过“-m”选项向相关 git 命令提供消息来规避此问题。
例如,请参阅: git stash --help
...
git stash store [-m|--message <message>] [-q|--quiet] <commit>
...
评论中澄清后的附加信息:
VIM 中有一个非交互(原始 ex)模式:“vim -e”,从 bash 运行命令“ex”也应该可以工作。但您仍然需要将 vim 命令通过管道传输到其中。在 git rebase 调用之前滥用 $EDITOR env 应该可以做到这一点,例如( -s 用于静默模式):
export EDITOR="cat commands.vim | vim -es"
但是,当您已经滥用 $EDITOR env 时,您也可以编写另一个 bash 脚本来进行文件修改并将其用作编辑器:
export EDITOR="/path/to/your/script/"
无论如何,之后不要忘记重置你的 $EDITOR 。