编辑git提交消息时自动进入插入模式

时间:2014-03-12 23:50:06

标签: git vim

如果我执行git commit,当Vim打开时,我希望立即处于插入模式。

我注意到编辑时filetype设置为gitcommit,所以我认为我可以通过自动命令实现此目的。

au BufRead gitcommit startinsert!

这不起作用,我做错了什么?

我决定au FileType gitcommit execute "normal! O" | startinsert在当前位置上方添加一个新行,然后输入插入模式以准备输入消息。

3 个答案:

答案 0 :(得分:12)

另一种方法:

export GIT_EDITOR='vim +startinsert'

或添加!到最后从邮件结尾开始(当使用git hooks完成邮件时很有用)

export GIT_EDITOR='vim +startinsert!'

答案 1 :(得分:9)

:au Event pattern command中,模式通常与缓冲区名称匹配。您可以使用BufRead gitcommit代替BufRead COMMIT_EDITMSG。如果要匹配filetype选项,请使用FileType事件。

我倾向于编写多行提交消息,并且我有一个自动命令(来自vimrc_example.vim)

exe "normal! g`\""

每当我输入新的缓冲区时,那么

au FileType gitcommit 1 | startinsert

在进入插入模式之前转到第一行?现在我已经测试了它,我想我会保留它。 :)

答案 2 :(得分:2)

这可能比它需要的要复杂得多,但是您可以使用单个文件类型插件来执行此操作:

$ mkdir -p ~/.vim/ftplugin/gitcommit
$ echo 'startinsert!' > !$/git-commit-insert.vim