Ho aperto un file in modalità sola lettura; c'è un modo per uscire dalla modalità di sola lettura?
wogni volta che voglio salvare. heh
Ho aperto un file in modalità sola lettura; c'è un modo per uscire dalla modalità di sola lettura?
wogni 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.
viewma si decide di modificarlo.
Puoi correre chmodda 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 .vimrcche 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 norofa 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 :wo :wqe 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, teereindirizza l'output vim :wdell'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
!alwcomando farà il trucco, come ha affermato Michael.