Это - проблема удобства использования, которая часто происходит со мной:
Я открываю системный файл только для чтения с энергией, даже редактируя его, потому что я не достаточно внимателен, или потому что энергия в системе плохо настроена. После того как мои изменения сделаны, я застреваю, имея необходимость записать им во временном файле или теряя их, потому что: w! не будет работать.
Есть ли команда энергии (: W!!!), который позволяет Вам писать текущий буфер как суперпользователю? (Vim попросил бы Ваш sudo или su пароль естественно),
:w !sudo tee % >/dev/null`
Объяснение: с !
, можно выполнить программы. Путем добавления префикса его: w, содержание файла (материал Вы имеете в энергии, не исходном файле, большем количестве precisly: буфер), будет дан команде на стандартном входе. %
заменяется именем файла, и >/dev/null
избегает, чтобы содержание было снова распечатано на экран (который является обычным поведением tee
).
Я нашел еще более короткий путь. dd
не печатает к stdout, таким образом, можно сохранить пустую вещь.
:w !sudo dd of=%
То же для :r
, который вставляет вывод данной команды, таким образом, можно, например, вставить текущую дату в файл при помощи :r !date