Будь ласка, не голосуйте за це. Я не рекомендую реалізувати цю відповідь, але це відповідь, яку просить rkthkr.
rkthkr сказав:
Але було б непогано перезапустити vim і запустити як root
Як це зробити з допомогою :!sudo vim %
Як я вже згадував ipozgaj,% як аргумент (навіть під аргумент) замінюється на шлях до поточного буфера. (Можливо, вам буде запропоновано ввести пароль.) Ви закінчите новий процес vim, який належить root, тобто дочірній процес початкового процесу vim. Звучить тупий, правда? Ось як це виглядає в 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
Якщо у вас є дозволи на запис до каталогу, який містить файл, і ви внесли зміни до нього, ви можете попередити, що файл swap закривається. Вибираючи [R] ecover, відображатиме більшість * змін, внесених батьківським процесом vim. (* Я думаю, що, можливо, оновлення swap приурочене або має поріг дельти. Я вже вклав занадто багато часу на це, і мені не хочеться його досліджувати.) Коли ви йдете і киньте vim, не турбуйтеся, коли ви все ще в vim ... ви відкрили другий процес vim. Пам'ятаєте?
Тепер, при всьому сказаному ... Я б майже ніколи цього не робив. Можливо, якби мені не вистачало або занадто багато кави, і я зрозумів, що мені потрібно буде відредагувати ще декілька файлів як root ... Я можу спробувати це. За 14 років адміністрування систем я ніколи не мав. Але, поки ви не висловили невдоволення моїм кращим рішенням (саме таким, як пропонується dbr), я ніколи про це не думав.