Gibt es eine Möglichkeit Emacs / vi / vim zu erzählen (von der Kommandozeile) , dass ich die Datei in anzeigen möchte view-mode
oder read-only
.
Ich kann eine Datei als schreibgeschützt öffnen, wenn emacs / vi / vim bereits ausgeführt wird.
linux
command-line
vim
emacs
Nifle
quelle
quelle
Antworten:
Für Emacs:
Es gibt keine Startoption, die schreibgeschützt ist.
Bearbeiten:
Wenn Sie diese kleine Funktion in Ihr Shell-Startskript einfügen (z. B. .bashrc), können Sie eine schreibgeschützte Datei öffnen, indem Sie Folgendes eingeben
ev file_to_view
quelle
vim -R Dateiname
quelle
Dateiname anzeigen
Grundsätzlich vim im Nur-Lese-Modus; Simples!
Wie durch Kommentar angedeutet, im Fall
view
zu Ebene verbunden istvi
, sind hier bash Befehle zum ersten Situation zu prüfen und dann zu beheben:quelle
vim
Syntax-Hervorhebung aktiviert ist, Ihreview
jedoch nicht, ist Ihre möglicherweiseview
ein Link zu einer Minimalversionvim
, in der keine Syntax-Hervorhebung kompiliert ist. Vergleichen Sie die Ausgaben des:version
Befehls.argv[0]
um über sein Verhalten zu entscheiden. Es ist ein allgemeiner Trick; AFAIK manchmal auch GCC und Bash.erlaubt schreiben mit
:w!
Verhindert, dass der Benutzer Änderungen an der Datei im Puffer vornimmt. Aber der Benutzer könnte den Puffer mit änderbar machen
:set modifiable
Du könntest benutzen
um zu verhindern, dass der Benutzer die Funktion "nicht änderbar" ausschaltet, und um dem Benutzer das Beenden durch Drücken von zu ermöglichen
q
. In diesem Fall kann der Benutzer jedoch überhaupt nicht in den Befehlsmodus wechseln. Dies kann möglicherweise das sein, was Sie möchten oder auch nicht.Sie können die Datei auch mit dem Befehl less öffnen:
Anzeigen der Datei in einer vim-ähnlichen Umgebung, jedoch ohne die Möglichkeit, die Datei zu ändern.
quelle
less
, obwohl, wie @nxdrvr darauf hinweist, Sie die v- Taste drücken können, um die Datei im bearbeitbaren Modus invi
Kleine Antwort auf die akzeptierte Antwort: Sie können dies in Ihrer Shell aliasen, um es auf einen einzelnen Befehl zu reduzieren. In bash können Sie beispielsweise Folgendes in Ihre .bashrc-Datei einfügen:
(Verschiedene Shells haben unterschiedliche Formate, aber Sie haben die Idee)
Ich hätte dies als Kommentar zu der akzeptierten Antwort hinzugefügt, aber es schien nicht möglich zu sein, einen mehrzeiligen "Code" -Block in einem Kommentar zu haben, und (auf jeden Fall in Bash) muss der obige Code wirklich sein in 3 separaten Zeilen.
quelle
So zeigen Sie die Datei nur an, ohne sie bearbeiten zu können:
In können
less
Sie durch Drücken der vTaste in den "Dateibearbeitungsmodus" wechseln . Sie können die Standardeingabe jedoch nicht bearbeiten. Wenn Sie also die Ausgabecat <file>
auf weniger setzen,less
wird der Bearbeitungsmodus beim Drücken von 'v' beendet.Für vim der gleiche Ansatz
quelle
v
Vorschlag. Raffiniert.cat
. Verwenden Sie einfach<FILENAME less
.<file> less
würde einen Fehler geben, ich nehme an, Sie meinten diesless <file>
, aber wie in der Antwort erläutertless
, könnte der Benutzer bei direkter Verwendung die v- Taste drücken und in den Bearbeitungsmodus wechseln. Pipingcat
to verhindertless
dies.less < FILENAME
Wenn Sie V drücken, erhalten Sie die Meldung "Standardeingabe kann nicht bearbeitet werden" . Ähnlich ist es mit Vim:vim - < FILENAME
.Für Emacs können Sie auch den Ansichtsmodus verwenden .
oder alternativ innerhalb eines Terminals:
Oder Sie können mein Wrapper-Skript verwenden
quelle
In Emacs können Sie tun
Syntaxhervorhebung wird angewendet. Die Datei wird nicht nur als schreibgeschützter Puffer geöffnet. Einige Befehle, z. B. I-Search, sind in diesem Modus ohne die Steuertaste verfügbar.
quelle
Das Senden einer Datei an std out kann angesichts der Dateigröße akzeptabel sein
quelle
Ich werde hier niemandem die Antwort entziehen, aber ich möchte ein paar weitere Informationen über die
Read-only Mode
Datei hinzufügen . Gemäß der Originaldokumentation Nur- Lese-Modus In manchen Fällen möchten Sie eine Datei anzeigen , diese jedoch vor versehentlichen Tastenanschlägen und Änderungen schützen. (Möglicherweise möchten Sie eine längere Datei aufrufen, um vi-Bewegungen zu üben, oder Sie möchten durch eine Befehlsdatei oder ein Programm blättern.) Sie können eine Datei im schreibgeschützten Modus eingeben und alle vi-Bewegungsbefehle verwenden, die Datei kann jedoch nicht geändert werden.Geben Sie Folgendes ein, um eine Datei im schreibgeschützten Modus anzuzeigen:
oder:
(Der Befehl view kann wie der Befehl vi eine beliebige Befehlszeilenoption verwenden, um zu einer bestimmten Stelle in der Datei zu gelangen.) Wenn Sie Änderungen an der Datei vornehmen möchten, können Sie den schreibgeschützten Modus durch überschreiben Hinzufügen eines Ausrufezeichens zum Schreibbefehl:
Wenn Sie ein Problem beim Schreiben der Datei haben.
Weitere Informationen finden Sie hier
quelle