Por favor, não vote em mim para isso. Eu não recomendo implementar esta resposta, mas é a resposta que o rkthkr está pedindo.
rkthkr said:
But it would be nice to have vim restarted and run as root
A maneira de fazer isso é com :!sudo vim %
Como eu mencionei para ipozgaj, um% como um argumento (mesmo um sub-argumento) é substituído pelo caminho para o buffer atual. (Você pode ser solicitado a fornecer sua senha.) Você acaba com um novo processo de vim, de propriedade do root, que é um processo filho do processo original do vim. Soa pateta, certo? Aqui está o que parece no ps:
~# ps afo pid,ppid,user,stat,comm
PID PPID USER STAT COMMAND
16187 30478 rbronosky Ss bash
16510 16187 rbronosky R+ \_ ps
30482 30478 rbronosky Ss bash
16244 30482 rbronosky S+ \_ vim
16318 16244 root S+ \_ vim
Se você tiver permissões de gravação no diretório que contém o arquivo e tiver feito edições nele, poderá ser avisado de que um arquivo de troca é encerrado. A escolha de [R] ecover, refletirá mais * das alterações feitas pelo processo pai vim. (* Eu acho que talvez a atualização de troca tenha sido cronometrada ou tenha um limite delta. Eu já dediquei muito tempo a isso e não me importo em pesquisá-la.) Quando você sai do vim, não não se assuste quando você ainda está em vim ... você abriu um segundo processo vim. Lembre-se?
Agora, com tudo isso dito ... eu quase nunca faria isso. Talvez, se eu não tivesse o suficiente ou muito café, e eu percebi que precisaria editar vários arquivos como root ... Eu poderia tentar isso. Em 14 anos de administração de sistemas, nunca o fiz. Mas, até você expressar descontentamento com a minha solução preferida (que é exatamente como dbr oferecido) eu nunca tinha pensado sobre isso.