Hoe kan ik de alleen-lezen modus in Vim verlaten?
Geplaatst op februari 18, 2021 door adminIk heb een bestand geopend in alleen-lezen modus; is er een manier om uit de alleen-lezen-modus te komen?
Reacties
Antwoord
Je zou dit kunnen doen:
:set noro
Dat schakelt de alleen-lezen vlag uit, maar als het onderliggende bestand is nog steeds niet schrijfbaar door jou, dan zal vim er nog steeds niet naar kunnen schrijven.
Opmerkingen
- hoe dit om te keren en terug te gaan alleen lezen?
- @LouisHong Heel gemakkelijk:
:set ro
. - Dit is perfect als je een beschrijfbaar bestand opent met
view
maar besluit dan om het te bewerken. - Het omgekeerde kan ook handig zijn.
psql
heeft bijvoorbeeld een meta-opdracht (\ev
) om een SQL-weergave te bewerken, die vim opent om te schrijven. Maar als ik zeker wil weten dat ik ' de weergave niet echt verander (in productie!), Kan ik onmiddellijk:set ro
. 🙂
Answer
U kunt chmod
van binnenuit uitvoeren vim:
:!chmod +w %
!
betekent een shell-commando uitvoeren, en %
is de huidige bestandsnaam. Je kunt het bestand ook gewoon forceren om te schrijven:
:w!
Antwoord
Bovendien naar Michael Mrozek “s antwoord , kunt u een regel toevoegen aan uw .vimrc
waarmee u naar een bestand kunt schrijven die je hebt nagelaten te openen met verhoogde rechten:
" Allows writing to files with root priviledges cmap w!! w !sudo tee % > /dev/null
Als het bestand alleen-lezen is, hoef je alleen :
Answer
Terwijl :set noro
het werk doet, controleert het niet of het bestand is geopend door een andere vim-instantie of werkt het bestand bij indien extern gewijzigd.
Om het bewerkbaar te maken en te controleren op wisselbestanden (wat de standaard is om een bestand te openen met vim), gebruikt u gewoon het bewerkingscommando (: help edit):
:e
Merk op, als het bestand sindsdien is gemanipuleerd (zelfs buiten vim), zal het de wijzigingen in de huidige buffer bijwerken (wat ik normaal gesproken wenselijk vind).
Antwoord
Hier ga ik, hoewel een beetje laat, misschien heb je je twijfel al opgelost;) Ik heb het niet gezien in elk van de opmerkingen zoals ik die ken met vim , dus ik voeg het toe:
Zodra je een bestand aan het bewerken bent, druk je op :w
of :wq
, en je ziet de vervelende melding “ E45 “readonly” -optie is ingesteld (add! to negeren) “
U kunt typen
:w !sudo tee %
-
w
schrijft de buffer, -
!sudo
roept de shell aan met sudo, -
tee
leidt de uitvoer vanvim :w
om naar de uitvoer met tee, en - is de huidige bestandsnaam
En dat zou moeten werken. Merk op dat dit zal vragen om het bestand opnieuw te laden in vim, waarvoor je op L moet drukken
Antwoord
Probeer deze:
vim -R "filename"
het opent in alleen-lezen modus, voer dan gewoon dit commando uit: q
Ik heb het geprobeerd en het werkte voor mij
Reacties
- Sorry. Ik heb geen idee wat je zegt.
Antwoord
Probeer sudo
. Als root
moet u het bestand openen. Sudo
is een commando waarmee je toestemming kunt vragen aan linux.
bijv.
sudo vim "filename"
Reacties
- Dit heeft niets te maken met permissies of privileges.Bovendien mag u
sudo
nooit gebruiken om een editor te starten; gebruik in plaats daarvansudoedit
.
!
toe aan dew
commando zal het lukken, zoals Michael zei.w
elke keer dat ik wil opslaan. heh