Jak mogę wyjść z trybu tylko do odczytu w Vimie?
On 18 lutego, 2021 by adminOtworzyłem plik w trybie tylko do odczytu; czy jest sposób na wyjście z trybu tylko do odczytu?
Komentarze
Odpowiedź
Możesz to zrobić:
:set noro
To usuwa flagę tylko do odczytu, ale jeśli plik bazowy nadal nie jest przez Ciebie zapisywalny, wtedy vim nadal nie będzie mógł do niego pisać.
Komentarze
- jak to odwrócić i wrócić tylko do odczytu?
- @LouisHong Bardzo łatwo:
:set ro
. - Jest to idealne rozwiązanie, jeśli otwierasz zapisywalny plik za pomocą
view
, ale potem zdecyduj się go edytować. - Odwrotna sytuacja też może być przydatna. Na przykład
psql
ma polecenie meta (\ev
) do edycji widoku SQL, które otwiera vim do zapisu. Ale jeśli chcę się upewnić, że faktycznie ' nie zmieniam widoku (w produkcji!), Mogę natychmiast:set ro
. 🙂
Odpowiedź
Możesz uruchomić chmod
z poziomu vim:
:!chmod +w %
!
oznacza uruchomienie polecenia powłoki, a %
to aktualna nazwa pliku. Możesz także po prostu wymusić zapis pliku:
:w!
Odpowiedź
Ponadto do odpowiedzi Michaela Mrozka , możesz dodać wiersz do swojego .vimrc
, który umożliwia zapisywanie do pliku że zapomniałeś otworzyć 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, wystarczy wpisać : w ! ! , zostaniesz poproszony o podanie hasła, a następnie plik zostanie pomyślnie zapisany.
Odpowiedz
Podczas gdy :set noro
wykonuje swoje zadanie, nie sprawdza, czy plik jest otwierany przez inną instancję vima lub aktualizuje plik, jeśli został zmieniony zewnętrznie.
Aby uczynić go edytowalnym i sprawdzić, czy nie ma plików wymiany (co jest domyślnym otwieraniem pliku w vimie) po prostu użyj polecenia edit (: help edit):
:e
Uwaga, jeśli plik był od tamtej pory manipulowany (nawet poza vimem), zaktualizuje zmiany w bieżącym buforze (co normalnie uważam za pożądane).
Odpowiedź
Zaczynam, chociaż trochę późno, może już rozwiązałeś swoje wątpliwości;) Nie widziałem którykolwiek z komentarzy znany mi z vim , więc dodaję go:
edytujesz plik, naciskasz :w
lub :wq
i pojawia się irytujący komunikat „ E45 ustawiono opcję „tylko do odczytu” (dodaj! do zastąpienia) „
Możesz wpisać
:w !sudo tee %
- zapisuje bufor,
-
!sudo
wywołuje powłokę za pomocą sudo, -
tee
przekierowuje dane wyjściowevim :w
do wyjścia z trójnikiem i - to aktualna nazwa pliku
I to powinno załatwić sprawę. Zwróć uwagę, że to poprosi o ponowne załadowanie pliku w vimie, po co musisz wcisnąć L
Odpowiedź
Wypróbuj tę:
vim -R "filename"
otwiera się w trybie tylko do odczytu, a następnie po prostu wykonaj to polecenie: q
Próbowałem i zadziałało dla mnie
Komentarze
- Przepraszamy. Nie mam pojęcia, co mówisz.
Odpowiedź
Spróbuj użyć sudo
. Jako root
musisz otworzyć plik. Sudo
to polecenie, w którym możesz poprosić o pozwolenie od Linuksa.
np.
sudo vim "filename"
Komentarze
- Nie ma to nic wspólnego z uprawnieniami ani przywilejami.Ponadto nigdy nie należy używać
sudo
do uruchamiania edytora; zamiast tego użyjsudoedit
.
!
dow
wystarczy, jak stwierdził Michael.w
za każdym razem, gdy chcę zapisać. heh