在vim中执行一个打开的默认编辑器命令

时间:2013-09-17 16:09:51

标签: linux git bash vim

我试图养成永不离开我的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中?

2 个答案:

答案 0 :(得分:2)

作为使用:!命令进行炮轰的替代方法,您可能需要尝试Tim Pope的Fugitive插件。从文档引用:

  

我不会骗你; fugitive.vim可能是最好的   有史以来的Git包装。

安装完成后,您只需运行:Gcommit命令即可​​打开提交缓冲区。

在Drew Neil的Vimcasts,关于使用Fugitive的系列文章值得一看:

答案 1 :(得分:1)

Git提交检查环境值$EDITOR,以决定应该打开哪个编辑器来键入提交消息,除非使用命令行上的-m optin指定了消息。

使用:

:!EDITOR=vim git commit

这会将$EDITOR环境变量设置为vim。


进一步解释:

(来自man git-commit)

  

用于编辑提交日志消息的编辑器将从中选择          GIT_EDITOR环境变量,core.editor配置          变量,VISUAL环境变量或EDITOR环境          变量(按此顺序)。有关详细信息,请参阅git-var(1)。

这意味着除了设置环境值之外,您还可以使用git config来指定编辑器。 (我会这样做)

git config core.editor vim

如果您曾经这样做过,那么git commit将不再检查$EDITOR env var。