Як зберегти файли, відредаговані vim?


66

Я не можу зберегти зміни після редагування

sudo vi /etc/network/interfaces

Текст перед редагуванням:

auto lo
iface lo inet ...

Редаговано:

auto eth0
iface eth0 inet dhcp

Яку комбінацію клавіш або послідовність потрібно натиснути, щоб зберегти це?


7
Якщо ви не знайомі з редагуванням файлів в редакторах терміналу на основі , як viі vim, я б рекомендував використовувати графічний редактор на основі хотів , geditщоб відкрити їх. Замініть sudo viна gksu gedit.
Адітя

5
Або використовувати sudo nanoтакож командний рядок Його, але набагато інтуїтивніше, ніж vi.
Уоррен Хілл

Відповіді:


125

Ви, ймовірно, перебуваєте в режимі редагування / вставки. Вам потрібно набрати наступну послідовність:

  1. Esc, щоб вийти з режиму редагування та повернення до командного режиму;
  2. :+ w+ q, Почніть з :(товстою кишкою) , потім натиснути wі , нарешті , qдо ш обрядового і д ПІФ (або просто :wписати без виходу)
  3. потім натисніть Enterдля дійсного.

18

Я зазвичай натискаю, ESCа потім утримую Shiftі натискаю zдвічі. Так само, як ви хочете ввести два великих Z букви у редакторі слів :) Це зберігає ваш документ і закриває ваш редактор.


4
О людино, зсув і подвійне z, якою була логіка дизайну, за якою я дивуюсь, "яка найменш інтуїтивна команда, яку ми можемо створити?", Ubuntu іноді мене розлючує, як божевільний
S ..

4
@Sam, я просто хотів визначити, що vi не має нічого спільного з ubuntu. Ubuntu вперше був випущений у 2004 році, тоді як vi був створений Біллом Джоєм близько 1976 року, натхненний ed (починаючи з 1971 року). Це означає, що ярлики in vi передують тим, що є майже в будь-якій іншій сьогодні широко використовуваній утиліті. За деяким збігом обставин, перша версія emacs, яка має зовсім інші дивні ярлики, була також випущена в 1976 р. Намагання зі стандартизації прийшли набагато пізніше.
yoniLavi

О, дякую за інформацію @yoniLavi, мої моменти все одно такі ж, тому, сподіваємося, стандартизаційні зусилля продовжують просуватися .. :)
S ..

@Sam, vi клавіатурні зв'язки насправді набагато більш стандартні, ніж ви думаєте; вони практично всюдисущі. Практично будь-яка програма може бути зроблена для імітації сполучень клавіш. Навіть типові прив'язки клавіатур до Gmail, очевидно (для користувачів Vim), базуються на вимиках клавіш vi.
Wildcard

що щодо ключа esc не працює? Режим вставки, щойно зупинений.
творець

3

Перевірте, чи є у вас адміністративні (кореневі) права для редагування файлу. використовувати цю команду

whoami

Якщо результат не "root", ви не повинні редагувати файл.

Щоб увійти як користувач root, скористайтеся командою нижче

sudo su

або

su

Відредагуйте файл,

vi /etc/network/interfeces

Після змін збережіть файл за допомогою

  1. Натисніть, Escщоб змінити режим
  2. :x щоб зберегти та закрити файл

Це все


0

на це запитання було дано відповідь давно, але якщо воно з’явиться в пошукових системах знову, це посилання є приємним чіт-таблицею vim, яке ви, можливо, захочете зробити закладку, якщо ви багато використовуєте vim.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.