Вопрос по vim, linux, sudo – Могу ли я получить права root без выхода из vim?

15

Иногда, когда я редактирую файл, требующий прав суперпользователя (например, файлы в / etc), но я забываю запустить vim от имени sudo.

После завершения редактирования введите:wq Я считаю, что не могу сохранить и уйти, даже используя!wq, потому что файл только для чтения.

Если я оставлю и заново отредактирую файл, все мои работы будут потеряны, но если нет, я не смогу сохранить свое редактирование. Итак, как мне получить разрешение root на запись, не выходя из vim?

@sehe - семантика ... принята тогда darryn.ten
Вы можете пометить ответ как правильный сейчас :) darryn.ten
Самым простым решением, конечно, является использование Emacs, который не позволяет редактировать файл, если у вас нет разрешения на его сохранение.grins, ducks and runs Sven Marnach
Я не думаю, что вы можете, просто скопируйте все, что у вас есть, закройте vim, запустите sudo и вставьте. отредактируйте: или сделайте, как ответил darryn.ten. Gonçalo Vieira
@ darryn.ten Нет «правильных» ответы. Просто "полезно" и / или «принято»; ответы :) sehe

Ваш Ответ

2   ответа
24

:w !sudo tee %

Он попросит вас ввести пароль.

@Michael: Обычный обходной путь, используемый для того, чтобы избавиться от необходимости запоминать сложную команду, заключается в создании пользовательской команды::command! W w !sudo tee % >/dev/null.
@ Энди: см. Вопрос & quot;How does the vim “write with sudo” trick work?& Quot;
Я протестировал его, и он работает, как и ожидалось, большое спасибо. Можете ли вы сказать мне, почему я должен эту команду, какую дозу это значит? Yongqiang Zhou
Я заставил себя запомнить это, поскольку я использую это довольно регулярно
Я никогда не могу вспомнить это, когда мне это нужно: /
3

tee это мило; если вам это нужно часто, я рекомендуюПлагин SudoEdit, который предлагает:SudoWrite команда (и дажеsudo: обработчик протокола).

Похожие вопросы