Ответ 1
Это потребует пароль root, а затем сохранит ваши изменения по вашему запросу:
:w !sudo tee %
Затем введите (L) oad в приглашении, чтобы повторно загрузить файл после его сохранения.
Иногда, когда я создаю файл с помощью vim some/path/newfile
, vim позволяет мне редактировать его, только чтобы жаловаться, когда я пытаюсь сохранить свои изменения.
E212 Can't open file for writing.
Это происходит, только если новый файл находится в системном каталоге.
:w!
не отменяет эту ошибку.
Как я могу написать текущий буфер, не сохраняя его во временное местоположение, выйдите, а затем переименуйте его с помощью sudo?
Это потребует пароль root, а затем сохранит ваши изменения по вашему запросу:
:w !sudo tee %
Затем введите (L) oad в приглашении, чтобы повторно загрузить файл после его сохранения.
Добавьте эту строку в свой .vimrc
:
cmap w!! %!sudo tee > /dev/null
а затем вы можете сделать
:w!!
когда вы войдете в эту позицию, и он напишет файл, используя sudo. Очень удобно.
Сначала вы можете mkdir, а затем сохраните его.
Если вы хотите надежное, легко запоминающееся решение и не против установки плагина, попробуйте SudoEdit.vim - Редактировать файлы, используя sudo или su или любой другой инструмент.
Если это так в Windows 7 или более поздних версиях, запустите редактор VI как Администратор. Щелкните правой кнопкой мыши приложение и выберите "Запуск от имени администратора". Эта проблема будет решена. Кроме того, ошибка связана с административными привилегиями.
вы можете попытаться сделать это в два шага, сначала создайте папку 'some' и 'path' с помощью mkdir ~, затем перейдите в папку 'path', используйте команду: sudo vim newfile.then сохраните ее
Для чего бы это ни стоило, вы также можете убедиться, что у вас достаточно места в разделе, где вы пытаетесь сохранить файл. Мне пришлось освободить место на моем/домашнем диске, и это решило проблему.