Otworzyłem plik w trybie tylko do odczytu; czy jest sposób na wyjście z trybu tylko do odczytu?
w
każdym razem, gdy chcę zapisać. heh
Otworzyłem plik w trybie tylko do odczytu; czy jest sposób na wyjście z trybu tylko do odczytu?
w
każdym razem, gdy chcę zapisać. heh
Odpowiedzi:
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ć.
:set ro
.
view
ale zdecydujesz się go edytować.
Możesz uruchomić chmod
z poziomu vima:
:!chmod +w %
!
oznacza uruchomienie polecenia powłoki i %
jest bieżącą nazwą pliku. Możesz także wymusić zapis pliku:
:w!
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:
" 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 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):
: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 :w
lub :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, tee
przekierowuje wyjście vim :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
!
dow
polecenia załatwi sprawę , jak stwierdził Michael.