Подтвердить что ты не робот

Ввод режима вставки автоматически при редактировании сообщений git

Если я делаю git commit, когда Vim открывается, я хочу быть в режиме вставки сразу.

Я заметил, что при редактировании filetype устанавливается gitcommit, поэтому я думал, что смогу добиться этого с помощью автокоманды.

au BufRead gitcommit startinsert!

Это не работает, но что я делаю неправильно?

Решение

Я установил au FileType gitcommit execute "normal! O" | startinsert, чтобы добавить новую строку выше текущей, а затем введите режим вставки, готовый для ввода сообщения.

4b9b3361

Ответ 1

В :au Event pattern command шаблон обычно сопоставляется с именем буфера. Вместо BufRead gitcommit вы можете использовать BufRead COMMIT_EDITMSG. Если вы хотите сопоставить параметр filetype, используйте событие FileType.

Я имею тенденцию писать многострочные сообщения фиксации, и у меня есть автокоманда (из vimrc_example.vim), которая делает

exe "normal! g`\""

всякий раз, когда я вхожу в новый буфер, так как насчет

au FileType gitcommit 1 | startinsert

чтобы перейти к первой строке перед входом в режим Insert? Теперь, когда я протестировал его, я думаю, что сохраню его.:)

Ответ 2

Альтернативный подход:

export GIT_EDITOR='vim +startinsert'

или добавить ! в конце, чтобы начать с конца сообщения (полезно при использовании git hooks для завершения сообщения)

export GIT_EDITOR='vim +startinsert!'

Ответ 3

Это, вероятно, немного сложнее, чем должно быть, но вы можете сделать это с помощью отдельного плагина filetype:

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