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 theurxvtc
program 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 .