¿Cómo guardo un archivo de solo lectura en Vim para Windows?


8

Ya he buscado mucho esto y cada respuesta es sobre Vim en Linux. ¿Hay alguna manera de guardar un archivo de solo lectura directamente desde Vim en Windows?

Respuestas:


11

Al igual que en otras versiones de vi / vim, puede usar :w!para forzar la escritura, siempre que tenga permisos para anular la propiedad de solo lectura.

Por ejemplo, si ha configurado el archivo como de solo lectura, lo anterior funcionará. Si Windows mismo o un administrador lo ha configurado como de solo lectura, necesitará otra opción.

Como comentó @ dash-tom-bang, un buen ejemplo es dentro de Archivos de programa, donde los archivos están protegidos de manera predeterminada. Este artículo de la base de conocimiento de Microsoft explica cómo funciona en la práctica.


Mi cuenta está configurada como administrador pero :w!no funciona. Dice que no se puede abrir el archivo para leer. Aunque puedo hacer exactamente lo mismo fuera de vim.
Durga Swaroop

1
@DurgaSwaroop: ¿Has intentado abrir gvimcomo Run as Administrator? Quizás resolvería su propósito ... o de lo contrario podría ser posible que otra aplicación bloquee el archivo ...
Cylian

1
@DurgaSwaroop: El proceso principal debe ser run as administratorcompletar su subproceso que involucra tareas administrativas que hacer ... Eche un vistazo a windows.microsoft.com/en-in/windows/… .... de lo contrario, desactive la UACconfiguración ... .
Cylian

1
La edición de archivos dentro de la jerarquía de Archivos de programa, por ejemplo, :w!no vuela y debe ejecutar gVim como administrador o Vim en un símbolo del sistema que se ejecutó como administrador.
dash-tom-bang

1
Gracias @ dash-tom-bang, agregué referencia a ese buen ejemplo en mi respuesta.
Rolinger

2

Puedes usar mi plugin SudoEdit .


¿Funciona esto en Windows correctamente? En el archivo Léame dice que probablemente no lo hará.
Durga Swaroop

De mis pruebas debería. Sin embargo, no uso Windows a menudo y nunca he recibido ningún comentario al respecto. Esa es la razón del archivo Léame. También depende del método que uses.
Christian Brabandt

2

Hay otra posibilidad que no se ha abordado en las otras respuestas: vim se negará a guardar un archivo si está abierto y bloqueado por otra aplicación de Windows. Muchas aplicaciones comunes de Windows (Office, por ejemplo) bloquean los archivos que abren. Si este es el problema, no hay problemas con los permisos o: w! Te ayudará. Simplemente necesita cerrar el archivo en la otra aplicación, y luego podrá guardarlo desde vim. Es lamentable que vim no indique claramente esta situación al usuario.


0

Para win7: Inicio> Ejecutar> Cmd (como administrador), y ejecute estos comandos para que el árbol de directorios pueda ser escrito por el administrador:

cd parent/folder

:: /f file, /a admin,  /r recurse, /d y = nopromt
takeown /F . /A /R /D Y > nul:

:: /t /q /c .. traverse quiet continue
icacls . /t /q /c /reset
icacls . /t /q /c /grant    :r Everyone:F
icacls . /t /q /c /setowner Administrators 

0

Ejecute gVim como administrador, por ejemplo, haciendo clic con el botón derecho o usando el atajo de teclado Shift+ F10en el atajo de gVim en el menú Inicio y seleccionando Ejecutar como administrador .

Abra el archivo que desea editar y guarde los cambios con :wnormalidad.


0

Uso gvim para editar C:\Windows\System32\drivers\etc\hostsdespués de configurar sus permisos en "control total", el truco consistía en configurar "heredar permisos" en "no" primero. Luego comenzó a funcionar sin el "!". También había corrido attribpero eso no fue efectivo.


¿Doest :sudoeditfunciona en windows? Lo siento, no puedo verificarlo.
Biggybi

-1

Escriba :f "newfilename"en modo de comando y luego al salir :wpara guardar con el nuevo nombre de archivo.

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.