Kiedy używasz Vima do edycji pliku tylko do odczytu, dostarczy on ostrzeżenie przy pierwszej edycji, ale pozwoli na wprowadzenie jakichkolwiek zmian. Rozumiem, że to zachowanie może być przydatne dla kogoś, kto zamierza zapisać plik pod inną nazwą; ale czasami otwieram pliki, do których nie mam dostępu do zapisu, a następnie zapominam i wprowadzam zmiany.
Czy można wejść w tryb, w którym Vim pozwoli na przeglądanie pliku, ale zablokuje dowolną opcję, która wprowadza zmiany?
filetype
formatting
ZeroKelvinKeyboard
źródło
źródło
let &modifiable = !&readonly
autocmd BufRead * let &modifiable = !&readonly
readonly
pliku, a następnie utworzeniu nowego bufora, nowy bufor kończy sięnomodifiable
.Dodaj to do swojego .vimrc:
źródło
Ponieważ powyższe odpowiedzi są prawidłowe, należy wziąć pod uwagę jeszcze jedną rzecz: dopóki plik jest „tylko do odczytu”, nie powinno być możliwości zmiany zawartości pliku, chyba że jesteś właścicielem pliku lub mieć prawo do zapisu tego pliku. I nawet wtedy vim nie zapisuje zmian w pliku, chyba że jawnie zastąpisz stan „tylko do odczytu” przez „: w!”.
Jeśli w rzeczywistości możesz edytować plik, który ma być tylko do odczytu, możesz ponownie sprawdzić uprawnienia, może to oznaczać błąd w konfiguracji zabezpieczeń. Jeśli sprawisz, że vim nie będzie mógł edytować pliku, inne sposoby edycji będą nadal obowiązywały, więc jeśli plik nie ma zostać zmieniony, powinien mieć ustawione odpowiednie uprawnienia. W systemie Windows możesz wymusić, aby plik był tylko do odczytu, wyraźnie odmawiając wszystkim prawa do zmiany, w systemie Linux możesz użyć atrybutu rozszerzonego „niezmiennego” (chattr + i).
źródło