Jak mogę wyjść z trybu tylko do odczytu w Vimie?


38

Otworzyłem plik w trybie tylko do odczytu; czy jest sposób na wyjście z trybu tylko do odczytu?


Jakie przeszkadzają ci w trybie „tylko do odczytu”? Jeśli po prostu chcesz zapisać plik, nawet jeśli wybierzesz opcję tylko do odczytu, dodanie polecenia !do wpolecenia załatwi sprawę , jak stwierdził Michael.
Bananguin

1
@ user1129682 to tylko niedogodność związana z pamięcią o wykrzykniku za wkażdym razem, gdy chcę zapisać. heh
wrongusername

Odpowiedzi:


43

Możesz to zrobić:

:set noro

To powoduje rozbrojenie flagi tylko do odczytu, ale jeśli plik podstawowy nadal nie jest zapisywany przez ciebie, vim nadal nie będzie mógł do niego zapisać.


jak to odwrócić i wrócić tylko do odczytu?
Louis Hong

2
@LouisHong Bardzo łatwo: :set ro.
Philip Kearns

1
Jest to idealne rozwiązanie, jeśli otworzysz zapisywalny plik, viewale zdecydujesz się go edytować.
wisbucky

9

Możesz uruchomić chmodz poziomu vima:

:!chmod +w %

!oznacza uruchomienie polecenia powłoki i %jest bieżącą nazwą pliku. Możesz także wymusić zapis pliku:

:w!

3

Oprócz odpowiedzi Michała Mrożka możesz dodać do swojego wiersza wiersz, .vimrcktóry pozwala na zapisanie pliku, który otworzyłeś z podwyższonymi uprawnieniami:

" Allows writing to files with root priviledges
cmap w!! w !sudo tee % > /dev/null

Jeśli plik jest tylko do odczytu, musisz tylko wpisać :w!!, pojawi się monit o podanie hasła, a następnie plik zostanie pomyślnie zapisany.


2

Podczas :set norowykonywania zadania nie sprawdza, czy plik jest otwierany przez inną instancję vima, ani nie aktualizuje pliku, jeśli został zmieniony zewnętrznie.

Aby go edytować i sprawdzić pliki wymiany (domyślnie jest to otwarcie pliku za pomocą vima), po prostu użyj polecenia edit (: help edit):

:e

Uwaga: jeśli plik był manipulowany od tego czasu (nawet poza vimem), zaktualizuje on zmiany w bieżącym buforze (co zwykle uważam za pożądane).


1

Proszę bardzo, choć trochę się spóźniłem, może już rozwiałeś swoje wątpliwości;) Nie widziałem żadnego z komentarzy w sposób, który znam z vimem , więc dodaję:

Gdy edytujesz plik, naciśnij :wlub :wq, i zobaczysz irytujący komunikat „ E45„ tylko do odczytu ”jest ustawiona (dodaj! Aby zastąpić)

Ustawiono opcję tylko do odczytu E45 (dodaj!, Aby zastąpić)

Możesz pisać

:w !sudo tee %

w! sudo tee%

  • w zapisuje bufor,
  • !sudo wywołuje powłokę z sudo,
  • teeprzekierowuje wyjście vim :wdo wyjścia za pomocą tee, i
  • % jest bieżącą nazwą pliku

I to powinno wystarczyć. Zauważ, że pojawi się monit o ponowne załadowanie pliku w vimie, za co musisz nacisnąć L

wprowadź opis zdjęcia tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.