代码之家  ›  专栏  ›  技术社区  ›  dmkc

从“git commit”调用时使用非标准配置的Vim?

  •  7
  • dmkc  · 技术社区  · 15 年前

    我注意到,每当我编写提交消息时,git似乎都会使用不同的vim设置。我有 git+svn 安装Macports,我已经检查了 $MYVIMRC 变量:设置为正确的文件。不过,每次我去提交一条消息时,每行限制80个字符,搜索区分大小写,而且我没有安装任何插件。

    可能是一些愚蠢的事情。希望你能给我一个指示。

    4 回复  |  直到 13 年前
        1
  •  15
  •   Cascabel    15 年前

    Vim知道很多文件类型——包括git提交(以及交互回扣和配置…)。其中每一个都有语法定义和ftplugins(filetype激活的插件)。提交ftplugin中的一个设置是 textwidth=72 . 这样做是为了让git log的输出在标准宽度的终端中看起来很好。如果你真的想改变它,你可以去编辑插件,但我真的建议保留它。

    <vim-directory>/vimXX/ftplugin/gitcommit.vim . 这个 XX 是版本号,例如,7.2版为72,主要组件通常类似于 /usr/share/vim .

    另外,该插件还定义了一个命令diffgitchached,它将在预览窗口中打开要提交的diff。汉迪!

        2
  •  4
  •   jamessan    15 年前

    :verbose set textwidth? formatoptions? 'textwidth' 'formatoptions' t 设置。很可能gitcommit文件类型插件( ftplugin/gitcommit.vim )正在更改其中一个或两个选项,因为您启用了文件类型插件( :filetype 显示 plugin:ON ).

        3
  •  1
  •   Thomas    15 年前

    部分回答,也许有用。。。

    根据 ps aux ,git使用以下命令启动vim:

    vim .git/COMMIT_EDITMSG
    

    这将触发语法模式 gitcommit ,在我的Ubuntu系统中

    /usr/share/vim/vimcurrent/syntax/gitcommit.vim
    

    /usr/share/vim/vimcurrent/filetype.vim
    
        4
  •  1
  •   Cody Hess    14 年前

    http://peox.net/articles/vimconfig.html

    (我最初认为这个问题与git有关,但在非git目录下测试后发现是由于.txt文件扩展名造成的。)