Подтвердить что ты не робот

Автоматически завершать длинные сообщения Git commit в Vim

Используя Git, мой редактор для коммитов - Vim. Я постоянно плохо работаю, вспоминая обертку линий, и поэтому я получаю длинные строки (например, этот ответ). Есть ли способ использовать магию git config или .vimrc, что я могу заставить Vim автоматически обернуть строки в 72 столбцах?

Связанный вопрос.

4b9b3361

Ответ 1

Добавьте это к вашему .vimrc:

au FileType gitcommit setlocal tw=72

Ответ 2

В то время как другие ответы прекрасно решают эту проблему, я настоятельно рекомендую установить Tim Pope fugitive.vim.

fugitive.vim - отличный плагин, который приносит функциональность Git для Vim. Он имеет целый ряд функций, которые не имеют отношения к вашему вопросу, но их стоит проверить. Тем не менее, это также может помочь вам не забыть, чтобы ваши сообщения фиксации имели надлежащую длину:

Sample commit message within Vim on fugitive

Ответ 3

Добавьте это в свой .vimrc:

filetype indent plugin on

Из здесь.

Ответ 4

2018 Обновление

Если вы обновите vim, он автоматически выделит первые 50 символов вашего заголовка и обернет строки в 72 символа. Он знает, что вы редактируете файл git commit.


Установить Homebrew

brew install vim

Ответ 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 может спасти много хлопот с самого начала!