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?
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:
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.
gvim
como 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 ...
run as administrator
completar su subproceso que involucra tareas administrativas que hacer ... Eche un vistazo a windows.microsoft.com/en-in/windows/… .... de lo contrario, desactive la UAC
configuración ... .
:w!
no vuela y debe ejecutar gVim como administrador o Vim en un símbolo del sistema que se ejecutó como administrador.
Puedes usar mi plugin SudoEdit .
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.
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
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 :w
normalidad.
Uso gvim para editar C:\Windows\System32\drivers\etc\hosts
despué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 attrib
pero eso no fue efectivo.
:sudoedit
funciona en windows? Lo siento, no puedo verificarlo.
Escriba :f "newfilename"
en modo de comando y luego al salir :w
para guardar con el nuevo nombre de archivo.
:w!
no funciona. Dice que no se puede abrir el archivo para leer. Aunque puedo hacer exactamente lo mismo fuera de vim.