Не используйте vi
в качестве команды, вместо этого используйте gvim -f
.
Проблема в том, что vi
(или vim
в консоли) требуется терминал, который может выполнять такие вещи, какперемещать курсор и т. д. pty gvim является очень простым ASCII-терминалом.
Обычный старый vim
не имеет этой проблемы, потому что он просто передает подпроцесс непосредственно на ваш терминал, следовательно, всеescape-последовательности все еще работают.
Вместо этого вы можете использовать gvim -f
, чтобы появилось новое окно gvim для вашего сообщения о коммите.(-f
предотвращает фоновую обработку) Это не совсем то, что вы просили (так как вы получаете новое окно), но это самое близкое, что вы можете получить к тому, что вы просили, не добавляя полную поддержку терминала в vim.