Ho aperto un file in modalità sola lettura; c'è un modo per uscire dalla modalità di sola lettura?
w
ogni volta che voglio salvare. heh
Ho aperto un file in modalità sola lettura; c'è un modo per uscire dalla modalità di sola lettura?
w
ogni volta che voglio salvare. heh
Risposte:
Potresti farlo:
:set noro
Ciò disattiva il flag di sola lettura, ma se il file sottostante non è ancora scrivibile da te, allora Vim non sarà ancora in grado di scrivergli.
:set ro
.
view
ma si decide di modificarlo.
Puoi correre chmod
da dentro vim:
:!chmod +w %
!
significa eseguire un comando shell ed %
è il nome file corrente. Puoi anche forzare la scrittura del file:
:w!
Oltre alla risposta di Michael Mrozek , puoi aggiungere una riga alla tua .vimrc
che ti consenta di scrivere in un file che hai trascurato di aprire con autorizzazioni elevate:
" Allows writing to files with root priviledges
cmap w!! w !sudo tee % > /dev/null
Se il file è di sola lettura, devi solo inserire :w!!, ti verrà richiesta la password e il file verrà scritto correttamente.
Mentre :set noro
fa il lavoro, non controlla se il file è aperto da un'altra istanza di vim o aggiorna il file se modificato esternamente.
Per renderlo modificabile e verificare la presenza di file di scambio (che è l'impostazione predefinita di apertura di un file con vim) basta usare il comando edit (: help edit):
:e
Nota, se il file è stato manipolato da allora (anche al di fuori di vim), aggiornerà le modifiche nel buffer corrente (che trovo normalmente desiderabile).
Eccomi, anche se un po 'in ritardo, forse hai già risolto il tuo dubbio;) Non ho visto in nessuno dei commenti un modo che conosco con Vim , quindi lo aggiungo:
Dopo aver modificato un file, premi :w
o :wq
e visualizzi il fastidioso messaggio " E45 'è impostata l'opzione" sola lettura "(aggiungi! Per sostituire) "
Puoi digitare
:w !sudo tee %
w
scrive il buffer, !sudo
chiama la shell con sudo, tee
reindirizza l'output vim :w
dell'output con tee e%
è il nome file correnteE questo dovrebbe fare il trucco. Nota che questo richiederà di ricaricare il file in vim, per ciò che devi premere L
!
alw
comando farà il trucco, come ha affermato Michael.