web-dev-qa-db-ja.com

Vimで長いGitコミットメッセージを自動的にラップする

Gitを使用したコミット用のエディターはVimです。私は常に行を折り返すことを覚えていないという悪い仕事をしているので、私は長い行を取得します(たとえば、 この答え を参照してください)。 Vimに72列の行を自動的にラップさせるgit configまたは.vimrcマジックを使用する方法はありますか?

関連する質問

60
mgilson

他の答えはこの問題を完全に解決しますが、Tim Popeの fugitive.vim をインストールすることを強くお勧めします。

fugitive.vimは、Git機能をVimにもたらす優れたプラグインです。それはあなたの質問に関係ないが、チェックアウトする価値がある機能のホストを全部持っています。ただし、コミットメッセージを適切な長さに保つことを忘れないでください:

Sample commit message within Vim on fugitive

20
David Cain

2018アップデート

Vimを更新すると、タイトルの最初の50文字が自動的に強調表示され、72行で行が折り返されます。 git commitファイルを編集していることを知っています。


インストール Homebrew

brew install vim
7
JBallin

以前の投稿のオプションのいくつかは機能しますが、異なるシステム間で矛盾があったことに気付きました。

Fedora 28(F26から最近アップグレードされた)は、git-commit/git-tag内のバージョンが.vircファイル(奇妙な*)を指していることを示したので、簡単にしたので、単純に〜/ .vimrc into〜/ .virc[ただし、以下を参照]。

brew からのvim 8.0でのmacOS 10.13.4は、 :verbose:set tw =? に従って/usr/share/vim/vim80/ftplugin/gitcommit.vimでうまく動作します。

CentOS 7.4 with vim 7.4(git version 1.8.3.1)何らかの理由で、提供されているgitcommit.vimのtextwidth行を使用していないようでしたので、迅速で汚い回避策を行いました(対処を省くため) 〜/ .vimrcの複数のファイル):

nmap <F2> :set textwidth=72<CR>
inoremap <F2> <Esc>:set textwidth=72<CR>a

それは十分にうまくいくようで、覚えやすいです-私はほとんどそこから引っ張るだけで、古いバージョンのgitとvimをいじり回すことをあきらめました。

それ以外の場合、私は(一時的に)Chip Hoggの 提案 Abe Voelkerの answer の後に行きました:autocmd FileType gitcommit setlocal textwidth = 72

Git-commit内では大きな違いはないと思いますが、安全である方が良いでしょう(特にその行がvimrc全体にコピーされる場合)。多くの例ではvimrcsであるため、ファイルタイプはもちろんonに設定されています。

*ただし、vimのルーラーが表示されない理由についてはまだ興味があったので、+ cmdline_infoに通知する:helpルーラー(後に表示される:バージョン)はコンパイル時に設定する必要があります。 git-commitの外でvimで:verを実行すると、異なる設定と異なるコンパイル時間が明らかになり、gitがおそらくユーザーの代わりにvimのシステムコピーを呼び出していることが示唆されました。

ですから、これをすべて始めるために最初にやるべきだったのは git config --global core.editor "vim" でした。それは冗長なステップだと思っていたからです。すべてのgitインストールで最初にこれを行うと、最初から多くの手間が省けます。

1
Raymond Wu Won

以下は、任意のエディターで動作する自動ラッピング用のgitフックです。 https://github.com/surabhigupta/AutoWrapSeventyTwo

1
sur