Hur kan jag lämna skrivskyddat läge i Vim?
On februari 18, 2021 by adminJag öppnade en fil i skrivskyddat läge; finns det ett sätt att komma ur läsbart läge?
Kommentarer
Svara
Du kan göra detta:
:set noro
Som avaktiverar skrivskyddad flagga, men om den underliggande filen är fortfarande inte skrivbar av dig, då kommer vim fortfarande inte att kunna skriva till den.
Kommentarer
- hur man vänder detta och går tillbaka att bara läsa?
- @LouisHong Mycket enkelt:
:set ro
. - Detta är perfekt för om du öppnar en skrivbar fil med
view
men besluta sedan att redigera den. - Det omvända kan också vara användbart. Till exempel
psql
har ett metakommandot (\ev
) för att redigera en SQL-vy, som öppnar vim för att skriva. Men om jag vill se till att jag inte ' inte ändrar vyn (i produktion!) Kan jag omedelbart:set ro
. 🙂
Svar
Du kan köra chmod
inifrån vim:
:!chmod +w %
!
betyder att köra ett skalkommando och %
är det aktuella filnamnet. Du kan också bara tvinga filen att skriva:
:w!
Svar
Dessutom till Michael Mrozeks svar kan du lägga till en rad i ditt .vimrc
som låter dig skriva till en fil att du har försummat att öppna med förhöjda behörigheter:
" Allows writing to files with root priviledges cmap w!! w !sudo tee % > /dev/null
Om filen är skrivskyddad, behöver du bara ange : w ! ! , du kommer att bli ombedd att ange ditt lösenord och sedan skrivs filen till.
Svar
Medan :set noro
gör jobbet, kontrollerar det inte om filen öppnas av en annan vim-instans eller uppdaterar filen om den ändras externt.
För att göra det redigerbart och kontrollera om du vill byta filer (vilket är standard som öppnar en fil med vim) använder du bara kommandot edit (: help edit):
:e
Observera att om filen har manipulerats sedan dess (även utanför vim) kommer den att uppdatera ändringarna i den aktuella bufferten (vilket jag tycker är normalt önskvärt).
Svar
Här går jag, även om det är lite sent, kanske har du redan löst din tvivel;) Jag har inte sett in någon av kommentarerna som jag känner till med vim , så jag lägger till det:
När du redigerar du en fil trycker du på :w
eller :wq
och du ser det irriterande meddelandet ” E45 ”läsbart” alternativ är inställt (lägg till! för att åsidosätta) ”
Du kan skriva
:w !sudo tee %
-
w
skriver bufferten, -
!sudo
kallar skalet med sudo, -
tee
omdirigerar utdata frånvim :w
till utgången med tee, och - är det aktuella filnamnet
Och det borde göra tricket. Observera att detta kommer att uppmanas att ladda om filen i vim, för vad du måste trycka på L
Svar
Prova den här:
vim -R "filename"
det öppnas i skrivskyddat läge, gör bara det här kommandot: q
Jag försökte och det fungerade för mig
Kommentarer
- Tyvärr. Jag har ingen aning om vad du säger.
Svar
Försök använda sudo
. Som root
måste du öppna filen. Sudo
är ett kommando där du kan begära tillstånd från Linux.
t.ex.
sudo vim "filename"
Kommentarer
- Detta har ingenting att göra med behörigheter eller behörigheter.Dessutom bör du aldrig använda
sudo
för att köra en redigerare; använd iställetsudoedit
.
!
tillw
-kommandot gör tricket, som Michael uppgav.w
varje gång jag vill spara. heh