Vim использует нестандартную конфигурацию при вызове из `git commit`? - PullRequest
7 голосов
/ 11 августа 2010

Я заметил, что git, похоже, использует разные настройки vim каждый раз, когда я пишу сообщение коммита. У меня установлена ​​git+svn с Macports, и я проверил переменную $MYVIMRC: она настроена на правильный файл. Тем не менее, каждый раз, когда я отправляю сообщение, у меня есть ограничение на 80 символов в строке, поиск с учетом регистра и ни один из установленных мной плагинов.

Это наверное что-то глупое. Был бы признателен за указатель того, что это такое.

РЕДАКТИРОВАТЬ: На самом деле я только что проверил: мои плагины работают. Это всего лишь ширина столбца из 80 символов, которая чудесным образом оживает, когда я печатаю сообщения коммита.

Ответы [ 4 ]

15 голосов
/ 11 августа 2010

Это не ошибка, это особенность!

Vim знает о многих типах файлов, включая git commit (и интерактивные ребазы, и config ...) Для каждого из них есть определения синтаксиса и ftplugins (плагины, активируемые типом файла). Одна из настроек в коммите ftplugin - textwidth=72. Это сделано для того, чтобы вывод git log выглядел хорошо в терминале стандартной ширины. Если вы действительно хотите изменить его, вы можете отредактировать плагин, но я действительно рекомендую оставить его.

Плагин должен быть в <vim-directory>/vimXX/ftplugin/gitcommit.vim. XX - это номер версии, например, 72 для версии 7.2, и ведущий компонент, как правило, выглядит как /usr/share/vim.

P.S. Плагин также определяет команду DiffGitCached, которая откроет diff для фиксации в окне предварительного просмотра. Handy!

4 голосов
/ 11 августа 2010

:verbose set textwidth? formatoptions? скажет вам значения этих опций и какой скрипт в последний раз их установил.Текст набирается только при наборе, если 'textwidth' не равен нулю и 'formatoptions' содержит настройку t.Вероятно, плагин для файловых типов gitcommit (ftplugin/gitcommit.vim) меняет один или оба этих параметра, потому что у вас включены подключаемые модули для файловых типов (:filetype показывает plugin:ON).

1 голос
/ 30 января 2011

FWIW, у меня была похожая проблема - Vim отключил мои настройки текстовой ширины в файлах .txt, потому что один из вызываемых плагинов файлового типа имел строку "formatoptions - = t"

Вместо того, чтобы редактировать плагины (что доставляло мне неудобства), я обошел проблему, добавив строку ": filetype plugins off" в мой файл ~ / .vimrc. Решение было подробно здесь - http://peox.net/articles/vimconfig.html

(Первоначально я думал, что проблема связана с git, но после тестирования в не git-каталоге я обнаружил, что это связано с расширением файла .txt.)

1 голос
/ 11 августа 2010

Частичный ответ, может быть полезно ...

Согласно ps aux, git запускает vim с помощью этой команды:

vim .git/COMMIT_EDITMSG

Это запускает режим синтаксиса gitcommit, который в моей системе Ubuntu живет в

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

и загружается с

/usr/share/vim/vimcurrent/filetype.vim
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...