Как убедиться, что в файл не внесены изменения


11

Есть ли в любом случае, я мог убедиться, что файл заблокирован, чтобы я не мог внести в него изменения. Есть ли команда для блокировки / разблокировки файла в vim. Иногда я хотел бы, чтобы файл находился в режиме только для чтения.

Ответы:


12

Вы можете установить файл только для чтения и не изменяемый

:set readonly
:set nomodifiable

Для получения дополнительной помощи см .:

:h 'readonly'
:h 'modifiable'

1
Вы также можете использовать vim -Rили viewдля автоматического открытия файла с помощью readonlyнабора (см. :help -R).
Мартин Турной

9

Самый простой способ - открыть файл, используя -Rфлаг при открытии файла, чтобы установить readonlyопцию.

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

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

view filename.txt

Обратите внимание , что чтения вариант не препятствует принудительной записи . Если вы используете :w!файл будет записан независимо. Тем не менее, в качестве меры безопасности для «внешний вид не трогают», -Rможет быть очень полезным в предотвращении случайных операций записи.

Другое решение можно использовать, чтобы открыть пустой буфер файла и чтения в файл, который вы хотите посмотреть на:

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

Это довольно безопасно , так как у вас есть неназванные буфера вы не можете случайно перезаписать файл , который вы читали в (хотя вы могли бы сделать это сознательно , если вы снова напечатали имя файла). Однако вы не можете получить автоматическую подсветку синтаксиса таким образом, в зависимости от ваших настроек.


На многих юниксах, то viewдвоичный часто трудно звено viдвоичного, и в этих системах, даже регулярных vi, когда он видит , он был вызван в качестве view, файл будет открыт в режиме только для чтения. Так что это не ВИМ-только
Оливье Дюлака

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

Хорошая точка зрения. Upvoted.
Оливье Дюлак
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.