避免vim在退出后吃掉输入

Bor*_*zin 1 vim

这样做时有一些令人烦恼的问题git commit(例如,还有其他非git场景):我想输入的内容(真的很快):

git commit -a --amendEnter:wqEntergit push -fEnter
Run Code Online (Sandbox Code Playgroud)

我的问题是,在我必须等到vim退出之后,并且由于我的vimrc很大,所以需要一些时间。我知道,我被宠坏了。:wqEnter

我很确定有一个git commit标志根本不会打开vim,但是我更喜欢一个更通用的vim解决方案,它将使vim不吃我的输入。

我的vimrc在这里

D. *_*ble 5

吉特

虽然OP需要以vim为中心的解决方案,但我提供了这些git解决方法作为临时的创可贴(以及有用的信息)。

在底部,我提供了用于发现vim问题的资源。

no-edit

修改--no-edit标志会导致vim无法启动(如果您不需要编辑提交消息,这是个好主意:这是标志的目的)。

使用“不同的”编辑器来提交消息

这里有几个不同的配置选项,还有几个不同的“ vims”可以尝试。

另请参见变量git(1)部分。ENVIRONMENT VARIABLESGIT_EDITOR

一次性配置

这对于偶尔使用很有用(当然,您可以使用别名)。

-c在git上使用标志:

git -c core.editor='vim variant' commit...
Run Code Online (Sandbox Code Playgroud)

您还可以设置GIT_EDITOR通过你的shell(如envexport或bash-ISMS)。

永久配置

如果您无法解决vim问题并永久需要它,那就很好了。

编辑您的配置文件(例如git config --edit --global),然后添加

[core]
    editor = vim variant
Run Code Online (Sandbox Code Playgroud)

Vim变体

Vim的命令行开关使我们可以控制其行为的各个方面。你可能想要

  • 禁用插件(--noplugin
  • 禁用vimrc(-u NORC
  • 同时停用(-u NONE
  • 使用“干净”的vim(--clean
  • 对git(-u DEFAULTS-u ~/.mygitvimrc)使用完全不同的vimrc

vimrc选项使我们能够为git工作制作极其高效且最小的vimrc,同时保留原始内容供全职人员使用。

实验可能表明,-N其中某些是必需的(非兼容模式)。

选择可行的设置后,只需vim <args>...在上面的位置之一中将其用作git编辑器即可。

Vim

在vim方面要尝试的第一件事是二进制拆分调试vimrc,并对vimrc进行概要分析,以找出根本原因。

这些步骤有助于调试。如果需要调试vimscript,请参见:help debug-scripts

一旦确定了根本原因,下一步就是压扁它。您可能需要

  • 禁用插件(可能按需加载)
  • 将自动命令更改为不太讨厌(尤其要注意意外触发多次的自动命令,例如not in augroup
  • 避免在vimrc中进行昂贵的函数调用
  • 帮助将繁重的插件转换为自动加载
  • 或无数其他提高性能的技术。

与往常一样,关键是要首先了解问题所在。


对于OP,将病原体和vundle一起使用似乎是一个错误(两个不同的运行时路径/插件管理器?)。此外,vundle提供了vundle#begin一个可能的时间节省vundle#rc