Wie kann ich eine Datei schreibgeschützt von der Kommandozeile aus mit emacs/vi/vim öffnen?

Wie kann ich eine Datei schreibgeschützt von der Kommandozeile aus mit emacs/vi/vim öffnen?

Gibt es eine Möglichkeit, Emacs/vi/vim (von der Befehlszeile aus) mitzuteilen, dass ich die Datei in view-modeoder anzeigen möchte read-only?

Ich weiß, wie man eine Datei schreibgeschützt öffnet, wenn Emacs/VI/VIM bereits ausgeführt wird.

Antwort1

Für Emacs:

emacs FILE --eval '(setq buffer-read-only t)'

Es gibt keine Startoption, um schreibgeschützten Modus zu erzwingen.

Bearbeiten:
Wenn Sie diese kleine Funktion in Ihr Shell-Startskript (z. B. .bashrc) einfügen, können Sie eine Datei schreibgeschützt öffnen, indem Sie Folgendes eingeben:ev file_to_view

ev() {
  emacs "$1" --eval '(setq buffer-read-only t)'
}

Antwort2

vim -R Dateiname

Antwort3

Dateinamen anzeigen

Grundsätzlich vim im schreibgeschützten Modus; ganz einfach!

Wie im Kommentar angedeutet, sind hier, falls viewes sich um ein einfaches handelt ,viSchlagBefehle, um die Situation zuerst zu untersuchen und dann zu beheben:

# non-destructive inspection
which vim
which view
ls -l $(which view)

# overwrite current view with symlink to vim, requires root
ln -sfv $(which vim) $(which view)

Antwort4

Kleine Ergänzung zur akzeptierten Antwort: Sie können dies in Ihrer Shell als Alias ​​verwenden, um es auf einen einzigen Befehl zu reduzieren. In Bash können Sie beispielsweise Folgendes in Ihre .bashrc einfügen:

emacsro() {
  emacs $1 --eval '(setq buffer-read-only t)'
}

(verschiedene Shells haben hierfür unterschiedliche Formate, aber Sie verstehen, was ich meine)

Ich hätte dies als Kommentar als Antwort auf die akzeptierte Antwort hinzugefügt, aber es schien nicht möglich, einen mehrzeiligen „Code“-Block in einem Kommentar zu haben, und (jedenfalls in Bash) muss der obige Code wirklich in drei separaten Zeilen stehen.

verwandte Informationen