C'è un modo per dire a emacs / vi / vim (dalla riga di comando) che voglio visualizzare il file in view-mode
o read-only
.
So come aprire un file come letto solo se emacs / vi / vim è già in esecuzione.
C'è un modo per dire a emacs / vi / vim (dalla riga di comando) che voglio visualizzare il file in view-mode
o read-only
.
So come aprire un file come letto solo se emacs / vi / vim è già in esecuzione.
Risposte:
Per emacs:
emacs FILE --eval '(setq buffer-read-only t)'
Non esiste alcuna opzione di avvio per forzare la sola lettura.
Modifica:
se inserisci questa piccola funzione nello script di avvio della shell (ad esempio .bashrc) puoi aprire un file di sola lettura digitandoev file_to_view
ev() {
emacs "$1" --eval '(setq buffer-read-only t)'
}
vim -R nomefile
visualizza il nome del file
Fondamentalmente vim in modalità di sola lettura; simples!
Come suggerito dal commento, nel caso in cui view
sia collegato a plain vi
, qui ci sono i comandi bash per ispezionare prima la situazione e poi risolverlo:
# 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)
vim
ha l'evidenziazione della sintassi ma view
non il tuo , forse sei view
un collegamento a una versione minima vim
che non ha l'evidenziazione della sintassi compilata. Confronta gli output del :version
comando.
argv[0]
per decidere il suo comportamento. È un trucco comune; AFAIK a volte GCC e Bash fanno anche questo.
vim -R <file>
permette di scrivere con :w!
vim -c ":set nomodifiable" <file>
Impedisce all'utente di apportare modifiche al file nel buffer. Ma l'utente potrebbe rendere modificabile il buffer con:set modifiable
Puoi usare
vim -c ":noremap q :q<cr>" -c ":map : <Esc>" -c ":set nomodifiable" <file>
per impedire all'utente di disattivare il "nomodificabile" e consentire all'utente di uscire premendo q
. Tuttavia, l'utente non può accedere alla modalità di comando, che può essere o meno ciò che desideri.
Puoi anche aprire il file con il comando less:
less <file>
Per visualizzare il file in un ambiente simile a VIM ma senza la possibilità di modificare il file.
less
, anche se come sottolinea @nxdrvr è possibile premere il tasto v per aprire il file in modalità modificabile invi
Piccolo seguito alla risposta accettata: è possibile alias nella shell per ridurla a un singolo comando. Ad esempio in bash puoi inserire quanto segue nel tuo .bashrc:
emacsro() {
emacs $1 --eval '(setq buffer-read-only t)'
}
(diverse shell avranno formati diversi per farlo, ma avrai l'idea)
Avrei aggiunto questo come commento in risposta alla risposta accettata, ma non sembrava possibile avere un blocco di "codice" su più righe in un commento e (in bash comunque) il codice sopra riportato deve essere su 3 linee separate.
Per visualizzare semplicemente il file senza possibilità di modifica:
cat <file> | less
In less
puoi andare in "modifica modalità file" premendo il vtasto. Ma non è possibile modificare l'input standard, quindi il piping dell'output su cat <file>
less, impedisce less
di passare alla modalità "modifica" premendo "v".
Per vim lo stesso approccio
cat <file> | vim -
v
suggerimento Nifty.
cat
. Basta usare <FILENAME less
.
<file> less
darebbe un errore, presumo che tu intendessi less <file>
, ma come spiegato nella risposta, quando si utilizza less
direttamente, l'utente potrebbe premere il tasto v ed entrare in modalità di modifica. Tubazioni cat
per impedire che less
ciò accada.
less < FILENAME
, che ti dà "Non può edit input standard" quando si preme V . Allo stesso modo con Vim: vim - < FILENAME
.
Per emacs puoi anche usare la modalità di visualizzazione .
emacsclient --create-frame --eval '(view-file "/tmp/EXAMPLE")'
o alternativa all'interno di un terminale:
emacsclient --nw --eval '(view-file "/tmp/EXAMPLE")'
Oppure puoi usare il mio script wrapper
l'invio di un file a STD può essere accettabile, date le dimensioni del file
cat <file> # dump whole file to stdout
head <file> # view the first few lines
tail <file> # view the last n lines
Non disconterò qui la risposta di nessun utente, ma vorrei aggiungere ulteriori informazioni sul Read-only Mode
file. Come da documentazione oreilly Modalità di sola lettura Ci saranno momenti in cui si desidera guardare un file ma si desidera proteggere quel file da sequenze di tasti e modifiche involontarie. (È possibile che si desideri chiamare un file lungo per esercitarsi nei movimenti di vi, oppure è possibile scorrere un file di comando o un programma). È possibile inserire un file in modalità di sola lettura e utilizzare tutti i comandi di spostamento vi, ma non sarà possibile modificare il file.
Per guardare un file in modalità di sola lettura, immettere:
$ vi -R file
o:
$ view file
(Il comando view, come il comando vi, può utilizzare una qualsiasi delle opzioni della riga di comando per avanzare in una posizione specifica nel file.) Se si decide di apportare alcune modifiche al file, è possibile ignorare la modalità di sola lettura aggiungendo un punto esclamativo al comando write:
:w!
or:
:wq!
Se hai problemi a scrivere il file.
Per ulteriori riferimenti qui