Làm thế nào để đảm bảo không có thay đổi nào được thực hiện đối với một tệp


11

Có dù sao tôi cũng có thể chắc chắn rằng một tập tin đã bị khóa để tôi không thể thực hiện bất kỳ thay đổi nào đối với nó. Có một lệnh để khóa / mở khóa một tập tin trong vim. Đôi khi tôi muốn một tập tin ở chế độ chỉ đọc.

Câu trả lời:


12

Bạn có thể đặt tệp chỉ đọc và không sửa đổi

:set readonly
:set nomodifiable

Để được trợ giúp thêm xem:

:h 'readonly'
:h 'modifiable'

1
Bạn cũng có thể sử dụng vim -Rhoặc viewđể tự động mở một tệp với readonlybộ (xem :help -R).
Martin Tournoij

9

Cách dễ nhất là mở tệp bằng -Rcờ khi mở tệp để đặt readonlytùy chọn.

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

Đối với Vim, bạn có thể sử dụng lệnh viewkhi mở tệp, tương đương với vim -R:

view filename.txt

Lưu ý rằng tùy chọn chỉ đọc không ngăn được ghi bắt buộc . Nếu bạn sử dụng :w!các tập tin sẽ được viết bất kể. Tuy nhiên, như một biện pháp an toàn cho "nhìn không chạm", -Rcó thể rất hữu ích trong việc ngăn chặn việc viết vô tình.

Một cách giải quyết khác mà bạn có thể sử dụng là mở bộ đệm tệp trống và đọc tệp bạn muốn xem:

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

Điều này khá an toàn vì bạn có một bộ đệm không tên, bạn không thể vô tình ghi đè lên tệp bạn đã đọc (mặc dù bạn có thể cố tình làm như vậy nếu bạn gõ lại tên tệp). Tuy nhiên, bạn có thể không nhận được cú pháp tự động làm nổi bật theo cách này, tùy thuộc vào cài đặt của bạn.


Trên nhiều Unice, viewnhị phân thường là một liên kết cứng của vinhị phân và trên các hệ thống đó, thậm chí là thông thường vi, khi thấy nó được gọi là view, sẽ mở tệp ở chế độ chỉ đọc. Vì vậy, nó không chỉ là vim
Olivier Dulac

@OlivierDulac, có lẽ không, nhưng tôi không nhìn thấy nó quy định tại POSIX-hoặc choex hoặc chovi . vi -R được chỉ định.
tự đại diện

Điểm tốt. Nâng cao.
Olivier Dulac
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.