Як переконатися, що у файлі не внесено змін


11

Чи все-таки я можу переконатися, що файл заблокований, щоб я не міг вносити будь-які зміни до нього. Чи є команда для блокування / розблокування файлу у vim. Деколи я хотів би, щоб файл знаходився в режимі лише для читання.

Відповіді:


12

Ви можете встановити файл лише для читання, який не змінюється

:set readonly
:set nomodifiable

Докладнішу інформацію див.

:h 'readonly'
:h 'modifiable'

1
Ви також можете використовувати vim -Rабо viewавтоматично відкривати файл із readonlyнабором (див. :help -R).
Martin Tournoij

9

Найпростіший спосіб - відкрити файл, використовуючи -Rпрапор при відкритті файла, щоб встановити readonlyпараметр.

vim -R filename.txt
vi -R filename.txt

Для Vim ви можете використовувати команду viewпід час відкриття файлу, що еквівалентно vim -R:

view filename.txt

Зауважте, що опція readonly не перешкоджає примусовому запису . При використанні :w!файл буде записаний незалежно. Однак, як запобіжний захід для "погляд не чіпай", -Rможе бути дуже корисним у запобіганні випадкових записів.

Ще одне вирішення, яке ви можете використати, - це відкрити порожній файловий буфер і прочитати у файлі, який ви хочете переглянути:

vim
# Then, from inside vim:
:r filename.txt

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


У багатьох Unices viewдвійковий файл часто є жорстким зв’язком viбінарного файлу , а в тих системах навіть звичайні vi, коли бачать, що його викликали як view, відкриють файл у режимі лише для читання. Тож це не лише vim
Олів'є Дулак

@OlivierDulac, можливо, ні, але я не бачу цього в POSIX - або для,ex або дляvi . vi -R як зазначено.
Wildcard

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