Я заметил, что git, похоже, использует разные настройки vim каждый раз, когда я пишу сообщение о фиксации. Я установил git+svn
с Macports, и я проверил переменную $MYVIMRC
: она установлена на правильный файл. Тем не менее, каждый раз, когда я собираюсь зафиксировать сообщение, у меня появляется ограничение на 80 символов в строке, поиск с учетом регистра и ни один из установленных мной плагинов.
Возможно, это что-то глупое. Был бы признателен за подсказку, что это такое.
EDIT: На самом деле я только что проверил: мои плагины работают. Только ширина колонки в 80 символов чудесным образом оживает, когда я набираю сообщения о фиксации.
Это не ошибка, это особенность!
Vim знает о множестве типов файлов, включая коммиты git (и интерактивные перестановки, и config ...). Для каждого из них есть определения синтаксиса и ftplugins (подключаемые модули, активируемые типом файла). Одна из настроек ftplugin фиксации - textwidth = 72
. Это сделано для того, чтобы вывод git log хорошо смотрелся в терминале стандартной ширины. Если вы действительно хотите его изменить, вы можете отредактировать плагин, но я бы очень рекомендовал оставить его.
Плагин должен находиться в
. XX
- это номер версии, например 72 для версии 7.2, а ведущим компонентом обычно является что-то вроде / usr / share / vim
.
P.S. Плагин также определяет команду DiffGitCached, которая откроет различие для фиксации в окне предварительного просмотра. Удобно!
:verbose set textwidth? formatoptions?
сообщит вам значения этих опций и какой скрипт устанавливал их последним. Текст будет жестко обернут при наборе, только если 'textwidth'
ненулевое значение и 'formatoptions'
содержит параметр t
. Скорее всего, плагин gitcommit filetype (ftplugin/gitcommit.vim
) изменяет одну или обе эти опции, потому что у вас включены плагины filetype (:filetype
показывает plugin:ON
).
Частичный ответ, может быть полезным ...
Согласно ps aux
, git запускает vim с помощью этой команды:
vim .git/COMMIT_EDITMSG
Это запускает синтаксический режим gitcommit
, который на моя система Ubuntu находится в
/usr/share/vim/vimcurrent/syntax/gitcommit.vim
и загружается из
/usr/share/vim/vimcurrent/filetype.vim