Como vim é um aplicativo de terminal, ele depende de ser executado dentro de um terminal para poder mostrar sua interface com o usuário. O terminal é responsável por renderizar tudo isso no contexto da área de trabalho que você está usando. Então, tudo o que você precisa adicionar a este comando é a chamada de terminal.
Veja o que funciona para mim. Estou usando o Debian 6 com o Gnome, FF20 e a versão noturna do Pentadactyl (hg6923 hoje):
set editor='gnome-terminal -e "vim +<line> +\"sil! call cursor(0, <column>)\" <file>"'
Você também pode (eek!) fazê-lo funcionar no Windows, assim:
set editor='cmd /c vim +<line> +"sil! call cursor(0, <column>)" <file>'
Nós temos que adicionar uma camada extra de aspas para passar toda a string de execução do vim para terminais não-Windows, mas além disso, é praticamente o mesmo comando. O Vim se move automaticamente para o arquivo, linha e coluna corretos quando você abre o arquivo. Em seguida, ele aguarda até sair do vim e, se você estiver editando um campo de entrada, atualizará esse campo com o novo texto.
Como aviso, no entanto, o documento diz que pode haver problemas com alguns terminais:
:help faq-editor-fork
Why doesn't external input field editing work with my 'editor' setting?
Unfortunately, external editors which return immediately, before editing is complete, are not supported. This means that
gvim, for instance, must be run with the -f flag, and editors run from a terminal must not connect to a remote process. In the case of Rxvt-unicode, this means that theurxvtcprogram is not an option, and Gnome Terminal is very likely not useable under any circumstances.
Confusamente, como acabamos de ver, o gnome-terminal funciona muito bem para mim. Editor de advertências .