Hvordan kan jeg gå ut av skrivebeskyttet modus i Vim?
On februar 18, 2021 by adminJeg åpnet en fil i skrivebeskyttet modus; er det en måte å komme seg ut av readonly mode?
Kommentarer
Svar
Du kan gjøre dette:
:set noro
Som deaktiverer skrivebeskyttet flagg, men hvis den underliggende filen er fortsatt ikke skrivbar av deg, så vil vim fremdeles ikke kunne skrive til den.
Kommentarer
- hvordan du kan reversere dette og gå tilbake å lese bare?
- @LouisHong Veldig enkelt:
:set ro
. - Dette er perfekt for hvis du åpner en skrivbar fil med
view
men bestem deg for å redigere den. - Det motsatte kan også være nyttig. For eksempel har
psql
en metakommando (\ev
) for å redigere en SQL-visning, som åpner vim for å skrive. Men hvis jeg vil sørge for at jeg ikke ' ikke endrer visningen (i produksjon!), Kan jeg umiddelbart:set ro
. 🙂
Svar
Du kan kjøre chmod
innenfra vim:
:!chmod +w %
!
betyr å kjøre en skallkommando, og %
er det nåværende filnavnet. Du kan også bare tvinge filen til å skrive:
:w!
Svar
I tillegg til Michael Mrozek «svar , kan du legge til en linje i .vimrc
som lar deg skrive til en fil at du har forsømt å åpne med forhøyede tillatelser:
" Allows writing to files with root priviledges cmap w!! w !sudo tee % > /dev/null
Hvis filen er skrivebeskyttet, trenger du bare å skrive inn : w ! ! , du blir bedt om å oppgi passordet ditt, og deretter blir filen skrevet til.
Svar
Mens :set noro
gjør jobben, sjekker den ikke om filen åpnes av en annen vim-forekomst eller oppdaterer filen hvis den endres eksternt.
For å gjøre det redigerbart og se etter byttefiler (som er standard som åpner en fil med vim), bruk bare redigeringskommandoen (: help edit):
:e
Merk at hvis filen har blitt manipulert siden den gang (også utenfor vim), vil den oppdatere endringene i den nåværende bufferen (som jeg vanligvis synes er ønskelig).
Svar
Her går jeg, selv om det er litt sent, kanskje du allerede har løst tvilen din;) Jeg har ikke sett i noen av kommentarene på en måte jeg kjenner til med vim , så jeg legger til det:
Når du redigerer du en fil, trykker du på :w
eller :wq
, og du ser den irriterende meldingen « E45 «readonly» -alternativet er satt (legg til for å overstyre) «
Du kan skrive
:w !sudo tee %
-
w
skriver bufferen, -
!sudo
kaller skallet med sudo, -
tee
omdirigerer utgangen fravim :w
til utgangen med tee, og - er det nåværende filnavnet
Og det burde gjøre susen. Merk at dette vil be om å laste inn filen på nytt i vim, for hva du må trykke L
Svar
Prøv denne:
vim -R "filename"
den er åpen i skrivebeskyttet modus, så er det bare å gjøre denne kommandoen: q
Jeg prøvde og det fungerte for meg
Kommentarer
- Beklager. Jeg aner ikke hva du sier.
Svar
Prøv å bruke sudo
. Som root
må du åpne filen. Sudo
er en kommando der du kan be om tillatelse fra linux.
f.eks.
sudo vim "filename"
Kommentarer
- Dette har ingenting med tillatelser eller privilegier å gjøre.I tillegg bør du aldri bruke
sudo
til å kjøre en redaktør; bruksudoedit
i stedet.
!
tilw
kommandoen vil gjøre susen, som Michael uttalte.w
hver gang jeg vil lagre. heh