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