
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
キーを押すまでカーソルはステータス行にあります。
1 | startinsert!
動作しecho 'some text' >/tmp/COMMIT_EDITMSG && vim -Nu NONE --cmd 'filetype plugin on' /tmp/COMMIT_EDITMSG
ますが、実行するとgit commit -t /tmp/COMMIT_EDITMSG
完全に中断されます。コミットメッセージは表示されず、コミットテンプレートはステータス行の下に表示されます。
右矢印を押すとコミットメッセージとカーソルが表示され、エディタは挿入モードになりますが、カーソルは行末ではなく2番目の文字にあります。
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 |
答え2
コマンドを使用してgitにvimを呼び出すように指示できますstartinsert
。これを~/.bashrc
ファイルに入れます。
export GIT_EDITOR="vim -c 'startinsert'"
ただし、マージをコミットするときにEscキーを押す必要があるのは面倒かもしれません。これは、マージのコミットメッセージがすでに生成されているためです。