如何在终端自动关闭 Vim 窗口?

问题描述 投票:0回答:1

我正在尝试加快工作流程并在

~/.zshrc
中创建了一个别名:

alias update='git fetch origin; git rebase -i origin/master'

但问题是,它显然会打开 Vim 窗口询问我是否要选择/编辑/压缩提交。

我想让自己的生活更轻松。所以我想在这一行添加一些东西来自动关闭 Vim 窗口。

我已经让ChatGPT给我答案了,它告诉我的是:

git fetch origin; git rebase -i origin/master; vim -c "bd|q!"

我测试过,失败了。它不能自动关闭 Vim 窗口。

git vim terminal zsh rebase
1个回答
0
投票

如果您的目标是在不打开编辑器窗口的情况下自动压缩提交,那么最简单的方法是:

GIT_SEQUENCE_EDITOR=true git rebase -i --autosquash BASE

作为别名,它看起来像这样:

[alias]
    srebase = "!f() { GIT_SEQUENCE_EDITOR=true git rebase -i --autosquash \"$@\"; };f"

你的命令的问题是 Vim 命令直到 rebase 完成后才执行,而 rebase 直到你的编辑器返回才完成。无论如何,Vim 命令不会与任何其他已经打开的 Vim 交互,即使它同时运行,因为您还没有使用客户端-服务器协议,并且不知道您的版本是否编译过方式。

但是,如果你想做一些涉及编辑交互式 rebase 内容的奇特操作,那么你可以使用

GIT_SEQUENCE_EDITOR
环境变量来提供一个命令(采用一个参数,序列文件)来修改序列文件.该环境变量可以接受任意 shell 脚本(仅适用于
/bin/sh
/bin/sh
),因为它将被传递到 shell,就像任何其他编辑器配置一样。

© www.soinside.com 2019 - 2024. All rights reserved.