vim не может записывать в файлы, даже если используется sudo

Я нахожу это с vim, если я попытаюсь отредактировать файл, который, как обычный пользователь, у меня нет прав на запись, даже если я использую sudoЯ не могу написать, хотя, если я использую nano редактировать тот же файл, он работает.

Так, например, если я делаю:

sudo vim /var/path/to/file.conf

Я получу это в файле и не смогу редактировать этот файл:

"/var/path/to/file.conf" [readonly]

Но если я вместо этого сделаю:

sudo nano /var/path/to/file.conf

Он сможет писать в файл, почему это так, почему sudo не дают vim доступ для записи, как это делается с nano? Это какая-то ошибка? Или это просто то, что должно быть? Потому что это очень раздражает.


Информация об ОС:

Description:    Ubuntu 15.04
Release:    15.04

Информация о пакете:

vim:
  Installed: 2:7.4.488-3ubuntu2
  Candidate: 2:7.4.488-3ubuntu2
  Version table:
 *** 2:7.4.488-3ubuntu2 0
        500 http://gb.archive.ubuntu.com/ubuntu/ vivid/main amd64 Packages
        100 /var/lib/dpkg/status

1 ответ

Решение

Это предполагаемое поведение vim (и vi).

Когда вы редактируете файл только для чтения, пытаясь записать файл обычным способом (с :w) не удается Это сделано для предотвращения случайного изменения файла только для чтения, который вы, возможно, не захотите изменять.

Если вы действительно хотите переопределить разрешения на чтение только для вашего файла и записать свои изменения в файл, вы должны использовать :w! Команда VIM знает, что это то, что вы хотите.

  • Это похоже на то, как :q не выйдет, если есть несохраненные изменения, но :q! будут.

Если вы хотите записать какие-либо изменения и выйти в одной команде, вы можете использовать :wq! или же :x!,

Другие вопросы по тегам