¿Cómo puedo salir del modo de solo lectura en Vim?


38

Abrí un archivo en modo de solo lectura; ¿Hay alguna manera de salir del modo de solo lectura?


¿Cuáles son las limitaciones en el modo de solo lectura que te molestan? Si es solo que desea escribir el archivo, aunque lo abra como de solo lectura, entonces agregar un comando !al wcomando será suficiente, como dijo Michael.
Bananguin

1
@ user1129682 es solo el inconveniente de recordar poner un signo de exclamación wcada vez que quiero guardar. je
wrongusername

Respuestas:


44

Podrías hacer esto:

:set noro

Eso deshabilita el indicador de solo lectura, pero si el archivo subyacente aún no se puede escribir, entonces vim aún no podrá escribir en él.


¿Cómo revertir esto y volver a leer solo?
Louis Hong

2
@LouisHong Muy fácil: :set ro.
Philip Kearns

1
Esto es perfecto si abre un archivo grabable viewpero luego decide editarlo.
wisbucky

9

Puedes correr chmoddesde vim:

:!chmod +w %

!significa ejecutar un comando de shell y %es el nombre de archivo actual. También puede forzar la escritura del archivo:

:w!

3

Además de la respuesta de Michael Mrozek , puede agregar una línea a la suya .vimrcque le permita escribir en un archivo que ha descuidado abrir con permisos elevados:

" Allows writing to files with root priviledges
cmap w!! w !sudo tee % > /dev/null

Si el archivo es de solo lectura, solo tiene que ingresar :w!!, se le pedirá su contraseña y luego el archivo se escribirá con éxito.


2

Si bien :set norohace el trabajo, no comprueba si el archivo es abierto por otra instancia de vim o actualiza el archivo si se cambia externamente.

Para hacerlo editable y buscar archivos de intercambio (que es la apertura predeterminada de un archivo con vim) solo use el comando de edición (: ayuda a editar):

:e

Tenga en cuenta que si el archivo ha sido manipulado desde entonces (incluso fuera de vim), actualizará los cambios en el búfer actual (que normalmente me parece deseable).


1

Aquí voy, aunque un poco tarde, tal vez ya resolvió su duda;) No he visto en ninguno de los comentarios una forma que conozca con vim , así que lo agrego:

Una vez que esté editando un archivo, presione :wo :wqy verá el molesto mensaje " La opción 'solo lectura' E45 está configurada (¡agregar! Para anular) "

La opción de solo lectura E45 está configurada (¡agregar! Para anular)

Puedes escribir

:w !sudo tee %

w! sudo tee%

  • w escribe el búfer,
  • !sudo llama al caparazón con sudo,
  • teeredirige la salida de vim :wa la salida con tee, y
  • % es el nombre de archivo actual

Y eso debería hacer el truco. Tenga en cuenta que esto le pedirá que vuelva a cargar el archivo en vim, para lo que debe presionar L

ingrese la descripción de la imagen aquí

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.