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ć.
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.
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).
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ć) ”
Możesz pisać
: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
!
dow
polecenia załatwi sprawę , jak stwierdził Michael.w
każdym razem, gdy chcę zapisać. hehOdpowiedzi:
Możesz to zrobić:
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ć.
źródło
:set ro
.view
ale zdecydujesz się go edytować.Możesz uruchomić
chmod
z poziomu vima:!
oznacza uruchomienie polecenia powłoki i%
jest bieżącą nazwą pliku. Możesz także wymusić zapis pliku:źródło
Oprócz odpowiedzi Michała Mrożka możesz dodać do swojego wiersza wiersz,
.vimrc
który pozwala na zapisanie pliku, który otworzyłeś z podwyższonymi uprawnieniami: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.
źródło
Podczas
:set noro
wykonywania 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):
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).
źródło
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
:w
lub:wq
, i zobaczysz irytujący komunikat „ E45„ tylko do odczytu ”jest ustawiona (dodaj! Aby zastąpić) ”Możesz pisać
w
zapisuje bufor,!sudo
wywołuje powłokę z sudo,tee
przekierowuje wyjścievim :w
do wyjścia za pomocą tee, i%
jest bieżącą nazwą plikuI to powinno wystarczyć. Zauważ, że pojawi się monit o ponowne załadowanie pliku w vimie, za co musisz nacisnąć L
źródło