我试图养成永远不离开我的gvim的习惯,即使是在终端中执行命令。这适用于:!<command>
。但是,如果此命令想要打开默认编辑器(vim),具有讽刺意味的是,它不能从gvim工作(它从命令行vim工作)。例:
:!git commit
error: Terminal is dumb, but EDITOR unset
Please supply the message using either -m or -F option.
我可以运行:
:!git commit -m "message"
但是当我检查文件和编写提交消息时,我喜欢 vim 窗口。是否可以像命令行 vim 一样使提交窗口出现在 gvim 中?
作为使用:!
命令的替代方法,您可能想尝试Tim Pope的Fugitive plugin。引用文档:
我不会骗你;fugitive.vim 很可能是最好的 有史以来的 Git 包装器。
安装后,您只需运行 :Gcommit
命令,提交缓冲区就会打开。
在德鲁·尼尔(Drew Neil)的Vimcasts上,他有一个关于使用逃亡的系列,值得一看:
- 逃亡系列 - 回顾展 - 系列概述
- Fugitive.vim - 命令行 git 的补充 - 使用
:Gcommit
的特定截屏视频
Git commit 检查环境值$EDITOR
,以决定应该打开哪个编辑器来键入提交消息,除非已使用命令行上的-m
选项指定了消息。
用:
:!EDITOR=vim git commit
这会将$EDITOR
环境 var 设置为 vim。
进一步解释:
(来自 man git-commit)
用于编辑提交日志消息的编辑器将从 GIT_EDITOR环境变量,核心编辑器配置 变量、可视环境变量或编辑器环境 变量(按该顺序)。参见 git-var(1) 了解详情。
这意味着除了设置环境值之外,您还可以使用git config
来指定编辑器。(我会这样做)
git config core.editor vim
如果你曾经这样做过,那么 git commit 将不再检查 $EDITOR
env var。