L'ho già cercato molto e ogni risposta riguarda Vim in Linux. C'è un modo per salvare un file di sola lettura direttamente da Vim in Windows?
L'ho già cercato molto e ogni risposta riguarda Vim in Linux. C'è un modo per salvare un file di sola lettura direttamente da Vim in Windows?
Risposte:
Come su altre versioni vi / vim, è possibile utilizzare :w!
per forzare la scrittura, purché si disponga delle autorizzazioni per sovrascrivere la proprietà di sola lettura.
Ad esempio, se il file è stato impostato in sola lettura, quanto sopra funzionerà. Se Windows stesso o un amministratore lo hanno impostato in sola lettura, avrai bisogno di un'altra opzione.
Come ha commentato @ dash-tom-bang, un buon esempio è in Programmi, in cui i file sono protetti per impostazione predefinita. Questo articolo della Microsoft Knowledge Base spiega come funziona in pratica.
gvim
come Run as Administrator
? Forse risolverebbe il tuo scopo ... o altrimenti potrebbe essere possibile che il file sia bloccato da un'altra applicazione ...
run as administrator
quello di completare il suo processo secondario che comporta compiti amministrativi da svolgere ... Dai un'occhiata a windows.microsoft.com/en-in/windows/… .... altrimenti disabilita le UAC
impostazioni ... .
:w!
non vola ed è necessario eseguire gVim come amministratore o eseguire Vim in un prompt dei comandi che è stato eseguito come amministratore.
Puoi usare il mio plugin SudoEdit .
C'è un'altra possibilità che non è stata affrontata nelle altre risposte: vim rifiuterà di salvare un file se è aperto e bloccato da un'altra applicazione Windows. Molte normali app di Windows (ad esempio Office) bloccano i file che aprono. Se questo è il problema, nessuna quantità di messaggi con autorizzazioni o: w! ti aiuterò. Devi semplicemente chiudere il file nell'altra app, e quindi sarai in grado di salvarlo da VIM. È un peccato che vim non segnali chiaramente questa situazione all'utente.
Per win7: Start> Esegui> Cmd (come Admin) ed esegui questi comandi per rendere scrivibile l'albero dir dall'amministratore:
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
Esegui gVim come amministratore, ad esempio facendo clic con il pulsante destro del mouse o utilizzando la scorciatoia da tastiera Shift+ F10su, il collegamento gVim nel menu Start e selezionando Esegui come amministratore .
Apri il file che desideri modificare e salva le modifiche usando :w
normalmente.
Uso gvim per modificare C:\Windows\System32\drivers\etc\hosts
dopo aver impostato le sue autorizzazioni su "pieno controllo", il trucco ha comportato prima l'impostazione "eredita autorizzazioni" su "no". Quindi ha iniziato a funzionare senza mai il "!". Avevo anche corso attrib
ma non era efficace.
:sudoedit
funziona su Windows? Scusa, non posso controllare.
Digitare :f "newfilename"
in modalità comando quindi quando si lascia :w
per salvare con il nuovo nome di file.
:w!
non funziona. Dice che non è possibile aprire il file per la lettura. Anche se posso fare esattamente la stessa cosa al di fuori di Vim.