Ой, я залишив файл захищеним від запису

Скажімо, ви редагуєте якийсь файл і здійснили багато змін. Оскільки це надзвичайно важливий файл і випадкові зміни небажані, ви захистити його від від запису, навіть для себе самого.

Vim редактор дозволяє редагувати і зберігати захищені від запису файли, вам лише необхідно добавити знак наголосу під час збереження (:w!). Єдиний випадок коли ви отримаєте помилку, це якщо намагатиметесь завершити роботу командою ZZ:

file.txt   File is read only

Vim відмовиться припинити роботу.

Що ж робити? Ви, звичайно, не захочете скасувати всі ваші редагування, але вам одночасно необхідно вийти з Vim щоб включити дозвіл на запис. У такому випадку вам допоможе можливіть Vim повернути вас до оболонки за допомогою команди :shell (або скороченої :sh). Остання виведе вас з Vim (помістить редактор у фоновий режим) і запустить натомість оболонку. Тепер ви можете поміняти дозволи файла:

$ chmod u+w file.txt

Після цього ви повинні вийти з оболонки і повернутися до редактора:

$ exit

Накінець, вам потрібно заставити Vim записати файл командою:

:w!

(редактор все ще вважає що файл захищений, тож нам необхідно використати примусову опцію "!")

Примітка:

Намагайтеся не забути що Vim все ще запущений після :sh комади, не починайте звідти нових сесій Vim, інакше ви можете заплутатись.


Ця метода також може використовуватись у випадку якщо ви не є власником файла (вам необхідно стати root користувачем і поміняти власника) або коли встановлені спеціальні атрибути, описані у сторінці chattr(1).