Come posso uscire dalla modalità di sola lettura in Vim?
Su Febbraio 18, 2021 da adminHo aperto un file in modalità di sola lettura; cè un modo per uscire dalla modalità di sola lettura?
Commenti
Risposta
Potresti fare questo:
:set noro
Questo ripristina il flag di sola lettura, ma se il file sottostante non è ancora scrivibile da te, quindi vim non sarà ancora in grado di scriverci.
Commenti
- come invertire e tornare indietro di sola lettura?
- @LouisHong Molto facilmente:
:set ro
. - Questo è perfetto se apri un file scrivibile con
view
ma poi decidi di modificarlo. - Anche il contrario può essere utile. Ad esempio,
psql
ha un metacomando (\ev
) per modificare una vista SQL, che apre vim in scrittura. Ma, se voglio essere sicuro di non ' cambiare effettivamente la visualizzazione (in produzione!) Posso immediatamente:set ro
. 🙂
Risposta
Puoi eseguire chmod
dallinterno vim:
:!chmod +w %
!
significa eseguire un comando della shell e %
è il nome del file corrente. Puoi anche forzare la scrittura del file:
:w!
Risposta
Inoltre alla risposta di Michael Mrozek , puoi aggiungere una riga al tuo .vimrc
che ti consente di scrivere su 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 con successo.
Risposta
Mentre :set noro
fa il lavoro, non “t controlla se il file è aperto da unaltra istanza vim o aggiorna il file se modificato esternamente.
Per renderlo modificabile e verificare la presenza di file di scambio (che è limpostazione predefinita per aprire un file con vim) basta usare il comando di modifica (: 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).
Risposta
Eccomi, anche se un po in ritardo, forse hai già risolto il tuo dubbio;) Non ho visto in qualsiasi commento in un modo che conosco con vim , quindi lo aggiungo:
Una volta che tu stai modificando un file, premi :w
o :wq
e viene visualizzato il messaggio fastidioso “ E45 lopzione “readonly” è impostata (aggiungi! per sovrascrivere) “
Puoi digitare
:w !sudo tee %
-
w
scrive il buffer, -
!sudo
chiama la shell con sudo, -
tee
reindirizza loutput divim :w
alloutput con tee e - è il nome del file corrente
E questo dovrebbe funzionare. Nota che questo richiederà di ricaricare il file in vim, per quello che devi premere L
Risposta
Prova questo:
vim -R "filename"
si apre in modalità di sola lettura, quindi esegui questo comando: q
Ho provato e ha funzionato per me
Commenti
- Spiacenti. Non ho idea di cosa stai dicendo.
Risposta
Prova a utilizzare sudo
. Come root
devi aprire il file. Sudo
è un comando in cui puoi richiedere lautorizzazione a Linux.
ad es.
sudo vim "filename"
Commenti
- Questo non ha nulla a che fare con autorizzazioni o privilegi.Inoltre, non dovresti mai usare
sudo
per eseguire un editor; utilizza invecesudoedit
.
!
alw
farà il trucco, come ha affermato Michael.w
ogni volta che voglio salvare. eh