Cómo asegurarse de que no se realicen cambios en un archivo


11

¿Hay alguna forma de asegurarme de que un archivo esté bloqueado para que no pueda hacer cambios? ¿Hay un comando para bloquear / desbloquear un archivo en vim? Algunas veces me gustaría que un archivo esté en modo de solo lectura.

Respuestas:


12

Puede configurar el archivo como de solo lectura y no modificable

:set readonly
:set nomodifiable

Para más ayuda ver:

:h 'readonly'
:h 'modifiable'

1
También puede usar vim -Ro viewpara abrir automáticamente un archivo con readonlyset (ver :help -R).
Martin Tournoij

9

La forma más fácil es abrir el archivo usando la -Rbandera al abrir el archivo para configurar la readonlyopción.

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

Para Vim, puede usar el comando viewal abrir un archivo, que es equivalente a vim -R:

view filename.txt

Tenga en cuenta que la opción de solo lectura no impide una escritura forzada . Si utiliza :w!el archivo se escribirá independientemente. Sin embargo, como medida de seguridad para "mirar no tocar", -Rpuede ser muy útil para prevenir escrituras accidentales.

Otra solución alternativa que podría usar es abrir un búfer de archivo vacío y leer el archivo que desea ver:

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

Esto es bastante seguro ya que tiene un búfer sin nombre: no puede sobrescribir accidentalmente el archivo que leyó (aunque podría hacerlo deliberadamente si vuelve a escribir el nombre de archivo). Sin embargo, es posible que no obtenga el resaltado automático de sintaxis de esta manera, según su configuración.


En muchos Unices, el viewbinario es a menudo un enlace duro del vibinario, y en esos sistemas, incluso regular vi, cuando ve que ha sido invocado como view, abrirá el archivo en modo de solo lectura. Así que no es solo vim
Olivier Dulac

@OlivierDulac, tal vez no, pero no lo veo especificado en POSIX, ni paraex ni paravi . vi -R se especifica
Comodín el

Buen punto. Votado
Olivier Dulac
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.