Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Vim using non-standard configuration when called from `git commit`?

Tags:

git

vim

I've noticed that git seems to use different vim settings any time I'm writing a commit message. I have the git+svn install off Macports, and I've checked the $MYVIMRC variable: it's set to the correct file. Still, every time I go to commit a message I have a restriction on 80 characters per line, case sensitive search, and none of the plugins I've installed.

It's probably something silly. Would appreciate a pointer as to what it is.

EDIT: Actually I just checked: my plugins work. It's only the column width of 80 chars that miraculously comes alive when I type out commit messages.

like image 583
dmkc Avatar asked Aug 11 '10 15:08

dmkc


2 Answers

That's not a bug, it's a feature!

Vim knows about a lot of filetypes - including git commits (and interactive rebases, and config...). There are syntax definitions and ftplugins (filetype-activated plugins) for each of these. One of the settings in the commit ftplugin is textwidth=72. This is done so that the output of git log will look good in a standard-width terminal. If you really want to change it, you could go edit the plugin, but I'd really recommend keeping it.

The plugin should be in <vim-directory>/vimXX/ftplugin/gitcommit.vim. The XX is the version number, e.g. 72 for version 7.2, and the leading component is generally something like /usr/share/vim.

P.S. The plugin also defines a command DiffGitCached, which will open the diff to be committed in a preview window. Handy!

like image 200
Cascabel Avatar answered Oct 24 '22 03:10

Cascabel


:verbose set textwidth? formatoptions? will tell you the values of these option and what script last set them. Text is only hard-wrapped while typing if 'textwidth' is non-zero and 'formatoptions' contains the t setting. It's likely that the gitcommit filetype plugin (ftplugin/gitcommit.vim) is changing one or both of these options because you have filetype plugins enabled (:filetype shows plugin:ON).

like image 39
jamessan Avatar answered Oct 24 '22 02:10

jamessan