Чтобы определить, какой редактор нужно запустить, sudo
проверяет три переменные окружения (по порядку): SUDO_EDITOR
, VISUAL
и EDITOR
, и использует первый редактор, который находит. (Если он не находит, то возвращается к настройкам по умолчанию.)
Так что вы можете заставить его запустить vimdiff вместо vim следующим образом:
$ VISUAL=vimdiff sudoedit file1 file2
Если ваша политика судоходства позволяет редактировать только определённые файлы, то это может не сработать, и в этом случае вы можете добавить параметр:
$ VISUAL='vimdiff file1' sudoedit file2
В этом случае, я предполагаю, что вы можете читать file1
как обычный пользователь, но вам нужен корневой доступ для чтения file2
.
(Я использую VISUAL
, потому что это то, к чему я привык; не стесняйтесь использовать SUDO_EDITOR
вместо этого)
Вот решение по цене. Пожалуйста, не стесняйтесь его оптимизировать! Возможно, это сработает в ~/vimrc
?
Откройте оба файла с sudoedit
$ sudoedit file1 file2
Вертикально разделите один буфер
:vsp | b2
В каждом окне выполните
:diffthis