Come assicurarsi che non vengano apportate modifiche a un file


11

Esiste comunque un modo per assicurarmi che un file sia bloccato in modo da non poter apportare modifiche ad esso. Esiste un comando per bloccare / sbloccare un file in vim. Alcune volte vorrei che un file fosse in sola lettura.

Risposte:


12

È possibile impostare il file in sola lettura e non modificabile

:set readonly
:set nomodifiable

Per ulteriori informazioni, consultare:

:h 'readonly'
:h 'modifiable'

1
Puoi anche usare vim -Ro viewper aprire automaticamente un file con readonlyset (vedi :help -R).
Martin Tournoij,

9

Il modo più semplice è aprire il file usando il -Rflag quando si apre il file per impostare l' readonlyopzione.

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

Per Vim, puoi usare il comando viewquando apri un file, che equivale a vim -R:

view filename.txt

Si noti che l'opzione di sola lettura non impedisce una scrittura forzata . Se si utilizza :w!il file verrà scritto a prescindere. Tuttavia, come misura di sicurezza per "guardare non toccare", -Rpuò essere molto utile nel prevenire scritture accidentali.

Un'altra soluzione alternativa che è possibile utilizzare è aprire un buffer di file vuoto e leggere il file che si desidera esaminare:

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

Ciò è abbastanza sicuro poiché si dispone di un buffer senza nome: non è possibile sovrascrivere accidentalmente il file letto (anche se è possibile farlo deliberatamente se si digita nuovamente il nome file). Tuttavia, potrebbe non essere possibile evidenziare la sintassi automatica in questo modo, a seconda delle impostazioni.


Su molti Unices, il viewbinario è spesso un collegamento vireale del binario e su quei sistemi, anche regolari vi, quando vede che è stato invocato come view, aprirà il file in modalità di sola lettura. Quindi non è solo vim
Olivier Dulac

@OlivierDulac, forse no, ma non lo vedo specificato in POSIX, né a favoreexa favorevi . vi -R è specificato.
Wildcard

Buon punto. Upvoted.
Olivier Dulac,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.