在 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 中?

作为使用:!命令的替代方法,您可能想尝试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。

最新更新