Czy istnieje sposób, aby powiedzieć emacs / vi / vim (z wiersza poleceń), że chcę wyświetlić plik w view-mode
lub read-only
.
Wiem, jak otworzyć plik tylko do odczytu, jeśli emacs / vi / vim już działa.
linux
command-line
vim
emacs
Nifle
źródło
źródło
Odpowiedzi:
W przypadku emacsa:
Nie ma opcji uruchamiania wymuszającej tylko odczyt.
Edycja:
Jeśli umieścisz tę małą funkcję w skrypcie uruchamiania powłoki (na przykład .bashrc), możesz otworzyć plik tylko do odczytu, wpisując
ev file_to_view
źródło
vim -R nazwa pliku
źródło
wyświetl nazwę pliku
Zasadniczo vim w trybie tylko do odczytu; proste!
Jak wskazano w komentarzu, w przypadku, gdy
view
jest on powiązany z zwykłymvi
, oto polecenia bash , aby najpierw sprawdzić sytuację, a następnie naprawić:źródło
vim
podświetlanie składni, aleview
nie masz , być możeview
jest to link do minimalnej wersjivim
, która nie ma wkompilowanego podświetlania składni. Porównaj wyniki:version
polecenia.argv[0]
aby zdecydować o swoim zachowaniu. To powszechna sztuczka; AFAIK czasami GCC i Bash również to robią.pozwala pisać z
:w!
Zapobiega wprowadzaniu przez użytkownika jakichkolwiek zmian w pliku w buforze. Ale użytkownik może zmodyfikować bufor za pomocą
:set modifiable
Możesz użyć
aby uniemożliwić użytkownikowi wyłączenie opcji „nomodifiable” i pozwolić użytkownikowi wyjść z menu, naciskając
q
. Ale wtedy użytkownik nie może w ogóle przejść do trybu poleceń, co może być lub nie być tym, czego chcesz.Możesz także otworzyć plik za pomocą polecenia less:
Aby wyświetlić plik w środowisku podobnym do vima, ale bez możliwości zmiany pliku.
źródło
less
, chociaż jak wskazuje @nxdrvr, możesz nacisnąć klawisz v , aby otworzyć plik w trybie edytowalnym wvi
Drobne działania następcze w stosunku do zaakceptowanej odpowiedzi: Możesz dokonać aliasu w powłoce, aby zredukować ją do pojedynczego polecenia. Na przykład w bash możesz umieścić następujące .bashrc:
(różne powłoki będą miały do tego różne formaty, ale masz pomysł)
Dodałbym to jako komentarz w odpowiedzi na zaakceptowaną odpowiedź, ale nie wydaje się możliwe, aby w komentarzu znajdował się wieloliniowy blok „kodu” i (w skrócie) powyższy kod naprawdę musi być na 3 osobnych liniach.
źródło
Aby wyświetlić plik bez możliwości edycji:
W
less
można przejść do trybu „Edycja pliku” przez naciśnięcie vklawisza. Ale nie możesz edytować standardowego wejścia, więc przesyłanie danych wyjściowychcat <file>
do mniej, przestajeless
przechodzić do trybu edycji po naciśnięciu „v”.Dla vima to samo podejście
źródło
v
sugestię. Fajnecat
. Po prostu użyj<FILENAME less
.<file> less
dałby błąd, zakładam, że miałeś na myśliless <file>
, ale jak wyjaśniono w odpowiedzi, przyless
bezpośrednim użyciu użytkownik może nacisnąć klawisz v i przejść do trybu edycji. Rurociągi,cat
abyless
temu zapobiec.less < FILENAME
, co daje „nie można edytować standardowe wejście” po naciśnięciu V . Podobnie z vim:vim - < FILENAME
.W przypadku emacsa możesz także użyć trybu widoku .
lub alternatywnie w terminalu:
Lub możesz użyć mojego skryptu opakowania
źródło
W emacs możesz to zrobić
Podświetlanie składni jest stosowane. Nie tylko otwiera plik jako bufor tylko do odczytu. Niektóre polecenia, takie jak I-search, są dostępne bez klawisza sterującego w tym trybie.
źródło
wysyłanie pliku do standardowego wyjścia może być dopuszczalne, biorąc pod uwagę rozmiar pliku
źródło
Nie zamierzam zdyskredytować żadnej odpowiedzi użytkownika tutaj, ale chciałbym dodać więcej informacji o
Read-only Mode
pliku. Zgodnie z dokumentacją oreilly Tryb tylko do odczytu Będą chwile, kiedy chcesz spojrzeć na plik, ale chcesz zabezpieczyć ten plik przed przypadkowymi naciśnięciami klawiszy i zmianami. (Możesz chcieć wywołać długi plik, aby ćwiczyć ruchy vi, lub możesz przewinąć plik poleceń lub program). Możesz wprowadzić plik w trybie tylko do odczytu i użyć wszystkich poleceń ruchu vi, ale nie będziesz mógł go zmienić.Aby wyświetlić plik w trybie tylko do odczytu, wprowadź:
lub:
(Polecenie view, podobnie jak polecenie vi, może korzystać z dowolnej opcji wiersza polecenia, aby przejść do określonego miejsca w pliku). Jeśli zdecydujesz się na edycję pliku, możesz zastąpić tryb tylko do odczytu dodając wykrzyknik do polecenia write:
Jeśli masz problem z zapisaniem pliku.
W celu uzyskania dalszych informacji tutaj
źródło