magit rebase 使用 $EDITOR=vim
Posted
技术标签:
【中文标题】magit rebase 使用 $EDITOR=vim【英文标题】:magit rebasing uses $EDITOR=vim 【发布时间】:2018-06-29 15:16:18 【问题描述】:我为 windows 安装了 emacs 和 git(必须使用 windows 工作),当我提交时一切似乎都很好,评论消息很好地在 emacs 中弹出,但是当重新设置基准时,我从 magit 中选择“交互式”,我得到选择一个提交,然后我按'Cc C-c',它应该切换到git-rebase-todo
缓冲区,但我得到magit-process
缓冲区,似乎git试图使用vim并卡在那里:
run C:/Program Files/Git/mingw64/libexec/git-core/git.exe … "rebase" "-i" "55ec1e8^"
Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal
Press ENTER or type command to continue[?1000l[?25h
看起来 magit 在变基时没有修改 $EDITOR,我如何强制 magit 使用 emacs?谢谢。
【问题讨论】:
你可以使用setenv
在Emacs的环境中设置变量,它应该被它启动的任何进程继承。
【参考方案1】:
我想通了,和windows没有关系,我在gitconfig中有sequence.editor
选项,看来magit不能覆盖这个选项。
【讨论】:
【参考方案2】:确保使用 Git 2.34(2021 年第四季度),尤其是在 Windows 上:在 Git 操作期间启动的编辑器会话(例如,在 'git commit
'(man) 或 git rebase
期间可以让终端处于有趣的状态。
代码路径已更新以保存之前的终端状态,并在之后恢复它,它会产生一个编辑器。
见commit 3d411af,commit e22b245(2021 年 10 月 5 日)Carlo Marcelo Arenas Belón (carenas
)。(由 Junio C Hamano -- gitster
-- 合并到 commit 853ec9a,2021 年 10 月 18 日)
editor
:调用EDITOR
后保存并重置终端签字人:Carlo Marcelo Arenas Belón
当调用 EDITOR 来修改提交消息时,它可能会更改终端设置,并且如果行为不端将导致终端输出损坏,如 Windows Terminal (issue 9359) 的最近报告所示
改为使用compat/terminal提供的功能来保存设置并安全恢复。
您可以得到的错误示例:
【讨论】:
以上是关于magit rebase 使用 $EDITOR=vim的主要内容,如果未能解决你的问题,请参考以下文章
git.exe pull --progress -v --no-rebase "origin" master