Используя Git, мой редактор для коммитов - Vim. Я постоянно плохо работаю, вспоминая обертку линий, и поэтому я получаю длинные строки (например, этот ответ). Есть ли способ использовать магию git config
или .vimrc
, что я могу заставить Vim автоматически обернуть строки в 72 столбцах?
Автоматически завершать длинные сообщения Git commit в Vim
Ответ 1
Добавьте это к вашему .vimrc
:
au FileType gitcommit setlocal tw=72
Ответ 2
В то время как другие ответы прекрасно решают эту проблему, я настоятельно рекомендую установить Tim Pope fugitive.vim.
fugitive.vim - отличный плагин, который приносит функциональность Git для Vim. Он имеет целый ряд функций, которые не имеют отношения к вашему вопросу, но их стоит проверить. Тем не менее, это также может помочь вам не забыть, чтобы ваши сообщения фиксации имели надлежащую длину:
Ответ 3
Добавьте это в свой .vimrc
:
filetype indent plugin on
Из здесь.
Ответ 4
2018 Обновление
Если вы обновите vim, он автоматически выделит первые 50 символов вашего заголовка и обернет строки в 72 символа. Он знает, что вы редактируете файл git commit.
Установить Homebrew
brew install vim
Ответ 5
Здесь git hook для автоматической обертки, которая будет работать с любым редактором: https://github.com/surabhigupta/AutoWrapSeventyTwo
Ответ 6
Несколько опций из предыдущих постов работают, за исключением того, что я заметил несоответствия между различными системами.
Fedora 28 (недавно повышен с F26) было легко, как только я понял: версия внутри мерзавца фиксации/ГИТ-тегов показал, что он указывал на .virc файлы (странно *), так что я просто скопировал мой ~/.vi м гс в ~/. Вирк [кроме, см. ниже].
macOS 10.13.4 с vim 8.0 из brew отлично работает с /usr/share/vim/vim80/ftplugin/gitcommit.vim в соответствии с : verbose: set tw =? ,
CentOS 7.4 с vim 7.4 (git version 1.8.3.1) по какой-то причине, хотя, похоже, не использовал строку textwidth в прилагаемом gitcommit.vim, поэтому я пошел на быстрый и грязный обходной путь (чтобы избавить меня от работы с несколько файлов) в ~/.vimrc:
nmap <F2> :set textwidth=72<CR>
inoremap <F2> <Esc>:set textwidth=72<CR>a
Кажется, это работает достаточно хорошо и легко запоминается - я все равно в основном только оттуда вытягиваюсь и уже перестал возиться со старыми версиями git и vim.
В противном случае, я (временно) пошел за предложением Chip Hogg после ответа Abe Voelker: autocmd FileType gitcommit setlocal textwidth = 72
Я не думаю, что это имеет большое значение в git-commit, но, возможно, лучше быть безопасным (особенно, если эта строка заканчивается копированием в vimrc). Тип файла, конечно, включен, как и во многих примерах vimrcs.
* Тем не менее, мне все еще было любопытно, почему vim ruler не показывался, поэтому я посмотрел: справочную линейку, которая сообщает, что +cmdline_info (отображается после: version) необходимо установить во время компиляции. Выполнение: ver в vim вне git-commit обнаружило разные настройки и другое время компиляции, предполагая, что git, возможно, вызывал системную копию vim вместо пользовательской.
В начале я должен был выполнить git config --global core.editor "vim", за исключением того, что я этого не сделал, потому что предполагал, что это избыточный шаг. Выполнение этого первым при каждой установке git может спасти много хлопот с самого начала!