Как мне сохранить файлы, отредактированные с помощью vim?

Я не могу сохранить изменения после редактирования

sudo vi /etc/network/interfaces

Текст перед редактированием:

auto loiface lo inet ...

Отредактировано для:

auto eth0iface eth0 inet dhcp

Какую комбинацию клавиш или последовательность я должен нажать, чтобы сохранить это?

Вероятно, вы находитесь в режиме редактирования / вставки. Вам нужно ввести следующую последовательность :

  1. Esc, чтобы выйти из режима редактирования и вернуться в командный режим ;
  2. :+w+q, начните с : (двоеточие) затем нажмите w и, наконец, q к вобряд и quit (или просто :w писать, не прекращая)
  3. затем нажмите Enter к действительному.

Я обычно нажимаю ESC а затем удерживайте Shift и нажмите z дважды. Точно так же, как вы хотели бы ввести две заглавные буквы Z в редакторе Word :) Это сохранит ваш документ и закроет ваш редактор.

Проверьте, есть ли у вас права администратора (root) для редактирования файла. используйте эту команду

whoami

Если результат не является "root", то вы не должны редактировать файл.

Чтобы войти в систему как пользователь root, используйте приведенную ниже команду

sudo su

или

su

Отредактируйте файл,

vi /etc/network/interfeces

После внесения изменений сохраните файл с помощью

  1. Нажмите Esc чтобы изменить режим
  2. :x чтобы сохранить и закрыть файл

Это все

на этот вопрос был дан ответ давным-давно, но на случай, если он снова появится в поисковых системах, этот ссылка это хороший чит-лист vim, который вы, возможно, захотите добавить в закладки, если часто используете vim.

Кстати, Вы можете использовать :wq для сохранения и выхода из файла (вы должны сначала нажать клавишу esc для выхода из режима вставки или замены, а затем нажать команды) и использовать :q! чтобы выйти без сохранения.

Если вам неудобно редактировать файлы в терминальных редакторах, таких как “vi” или “vim”, я бы рекомендовал использовать графический редактор, такой как “gedit”, чтобы открыть их. Замените sudo vi на gksu gedit.

Или используйте sudo nano Это тоже командная строка, но гораздо более интуитивно понятная, чем vi.