如果我执行git commit
,当Vim打开时,我希望立即处于插入模式。
我注意到编辑时filetype
设置为gitcommit
,所以我认为我可以通过自动命令实现此目的。
au BufRead gitcommit startinsert!
这不起作用,我做错了什么?
解
我决定au FileType gitcommit execute "normal! O" | startinsert
在当前位置上方添加一个新行,然后输入插入模式以准备输入消息。
答案 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