Автоматически переносить длинные сообщения git commit в Vim
используя Git, мой редактор для коммитов-это Vim. Я постоянно делаю плохую работу по запоминанию, чтобы обернуть строки, и поэтому я получаю длинные строки (см. Этот ответ, например). Есть ли способ с помощью некоторых git config
или .vimrc
магия, что я могу заставить Vim автоматически переносить строки в 72 столбца?
вопрос.
6 ответов:
в то время как другие ответы решают эту проблему отлично, я настоятельно рекомендую вам установить Tim Pope's беглеца.ВИМ.
беглеца.vim-это отличный плагин, который обеспечивает функциональность Git для Vim. Он имеет целый ряд функций, которые не относятся к вашему вопросу, но стоит проверить. Тем не менее, это также может помочь вам запомнить, чтобы ваши сообщения фиксации имели правильную длину:
добавьте это в ваш
.vimrc
:filetype indent plugin on
С здесь.
обновить 2018
Если вы обновите vim, он автоматически выделит первые 50 символов вашего заголовка и обернет строки на 72 символа. Он знает, что вы редактируете файл фиксации git.
установить доморощенного
brew install vim
вот крюк git для автоматической упаковки, который будет работать с любым редактором: https://github.com/surabhigupta/AutoWrapSeventyTwo
несколько вариантов из предыдущих сообщений работают, за исключением того, что я заметил несоответствия между различными системами.
Fedora 28 (недавно обновлена с F26) было легко, как только я понял :версия внутри git-commit/git-tag показала, что она указывает .virc файлы (странно*) поэтому я просто скопировал мой~/. vim rc в ~/.Вирк [за исключением, см. ниже].
macOS 10.13.4 с vim 8.0 от квас работает просто отлично от / usr / share/vim/vim80/ftplugin / gitcommit.vim согласно : verbose: set tw=?.
CentOS 7.4 с vim 7.4 (версия git 1.8.3.1) по какой-то причине, хотя, похоже, не использует строку textwidth в поставляемом gitcommit.ВИМ, поэтому я пошел на быстрый и грязный решение (чтобы спасти меня от работы с несколькими файлами) в ~/.vimrc:
nmap <F2> :set textwidth=72<CR> inoremap <F2> <Esc>:set textwidth=72<CR>a
это, кажется, работает достаточно хорошо и легко запомнить - я в основном только тянуть оттуда в любом случае и есть вроде как перестал возиться со старыми версиями git и vim.
в противном случае, я (временно) пошел за чипом Хогга предложение после Эйба Фолькера ответ: autocmd FileType gitcommit setlocal textwidth=72
Я не думаю, что это имеет большое значение внутри git-commit, но, возможно, лучше быть в безопасности (особенно если эта строка заканчивается копированием по всему vimrc). Тип файла, конечно, установлен в on, так как он находится в многие примеры vimrcs.
*, мне все еще было любопытно, почему линейка vim не показывалась, поэтому я посмотрел :Help ruler, который сообщает +cmdline_info (отображается после :version), должен быть установлен во время компиляции. Запуск :ver в vim за пределами git-commit показал разные настройки и другое скомпилированное время, предполагая, что git, возможно, вызывал системную копию vim вместо пользовательской.
Так что я должен был сделать в начале, чтобы все это было запущено git config --global core.редактор "ВИМ" за исключением того, что я не сделал, потому что я предположил, что это был избыточный шаг. Выполнение этого сначала на каждой установке git может сэкономить много хлопот с самого начала!