Gitの変更をコミットするときに最初の行の最後に挿入モードでVimを起動するにはどうすればよいですか?

Gitの変更をコミットするときに最初の行の最後に挿入モードでVimを起動するにはどうすればよいですか?

Vimを常にに設定する最良の方法は何ですか最初の行の末尾にカーソルがある挿入モード(コミットメッセージテンプレートを考慮)ランタイムgit commit?これは基本的にggAすべてのメディアと同じことを行います。理想的には、これはVim構成でなければなりません(おそらく~/.vim/after/ftplugin/gitcommit.vim)、私は依存しているので$VISUALすべてに対して個別にエディタを設定する代わりに。


これはほとんど動作します。

call feedkeys('ggA', 'int')

ただし、実行時にecho 'some text' >/tmp/COMMIT_EDITMSG && vim -Nu NONE --cmd 'filetype plugin on' /tmp/COMMIT_EDITMSGキーを押すまでカーソルはステータス行にあります。

Vimにカーソルはありません。


1 | startinsert!動作しecho 'some text' >/tmp/COMMIT_EDITMSG && vim -Nu NONE --cmd 'filetype plugin on' /tmp/COMMIT_EDITMSGますが、実行するとgit commit -t /tmp/COMMIT_EDITMSG完全に中断されます。コミットメッセージは表示されず、コミットテンプレートはステータス行の下に表示されます。

<code>git commit</code>破損したビュー

右矢印を押すとコミットメッセージとカーソルが表示され、エディタは挿入モードになりますが、カーソルは行末ではなく2番目の文字にあります。

カーソルを移動した後、<code>git commit</code>

Vimにバッファの実際の内容を表示するように設定に何かを追加する必要がありますか?

ベストアンサー1

Vim Wikiaに提供されている自動コマンドの1つを適用すると、これはgit commit -t /tmp/COMMIT_EDITMSG私にとってうまくいくようです。

" ~/.vim/ftplugin/gitcommit.vim
au! VimEnter COMMIT_EDITMSG exec 'norm gg' | startinsert!

同じでライン印刷に多少の遅延があるため、exec 'norm gg' |これを使用します。1 |:1 |:1p |

おすすめ記事