¿Hay alguna manera de decirle a emacs / vi / vim (desde la línea de comandos) que quiero ver el archivo en view-modeo read-only.
Sé cómo abrir un archivo como de lectura solo si emacs / vi / vim ya se está ejecutando.
                    
                        linux
                                command-line
                                vim
                                emacs
                                
                    
                    
                        Nifle
fuente
                
                fuente

Respuestas:
Para emacs:
No hay opción de inicio para forzar solo lectura.
Editar:
si coloca esta pequeña función en su script de inicio de shell (.bashrc, por ejemplo), puede abrir un archivo de solo lectura escribiendo
ev file_to_viewfuente
vim -R nombrearchivo
fuente
ver nombre de archivo
Básicamente vim en modo de solo lectura; simples!
Como lo indica el comentario, en caso de que
viewesté vinculado a simplevi, aquí hay comandos bash para inspeccionar primero la situación y luego solucionarla:fuente
vimtiene resaltado de sintaxis peroviewno lo tiene, quizás suviewes un enlace a una versión mínimavimque no tiene resaltado de sintaxis compilado. Compare las salidas del:versioncomando.argv[0]para decidir su comportamiento. Es un truco común; AFAIK a veces GCC y Bash también hacen esto.permite escribir con
:w!Impide que el usuario realice cambios en el archivo en el búfer. Pero el usuario podría modificar el búfer con
:set modifiablePodrías usar
para evitar que el usuario desactive la opción "nomodificable" y permitir que el usuario salga presionando
q. Pero, entonces, el usuario no puede ingresar al modo de comando, lo que puede o no ser lo que desea.También puede abrir el archivo con el comando less:
Para ver el archivo en un entorno similar a vim pero sin la capacidad de cambiar el archivo.
fuente
less, aunque como señala @nxdrvr puede pulsar el v llave para abrir el archivo en modo editiable enviPequeño seguimiento de la respuesta aceptada: puede alias esto en su shell para reducirlo a un solo comando. Por ejemplo, en bash puedes poner lo siguiente en tu .bashrc:
(diferentes shells tendrán diferentes formatos para hacer esto, pero entiendes la idea)
Hubiera agregado esto como un comentario en respuesta a la respuesta aceptada, pero no parecía posible tener un bloque de "código" de varias líneas en un comentario, y (en bash de todos modos) el código anterior realmente necesita ser en 3 líneas separadas.
fuente
Para ver el archivo sin posibilidad de editarlo:
En
lesspuede ir al "modo de edición de archivos" presionando la vtecla. Pero no puede editar la entrada estándar, por lo que canalizar la salidacat <file>a menos, dejalessde ir al modo 'editar' al presionar 'v'.Para vim el mismo enfoque
fuente
vsugerencia Hábil.cat. Solo úsalo<FILENAME less.<file> lessdaría un error, supongo que lo dices en serioless <file>, pero como se explica en la respuesta, cuando se usalessdirectamente, el usuario podría presionar la tecla v y entrar en modo de edición. La tuberíacatalessevita que esto suceda.less < FILENAME, que le da "No se puede editar la entrada estándar" cuando se presiona V . Lo mismo ocurre con Vim:vim - < FILENAME.Para emacs también puede usar el modo de vista .
o alternativa dentro de una terminal:
O puedes usar mi script de envoltura
fuente
En emacs puedes hacer
Se aplica el resaltado de sintaxis. No solo abre el archivo como un búfer de solo lectura. Algunos comandos, como I-search, son accesibles sin la tecla de control en este modo.
fuente
enviar un archivo a std, puede ser aceptable dado el tamaño del archivo
fuente
No voy a descartar la respuesta de ningún usuario aquí, pero me gustaría agregar más información sobre el
Read-only Modearchivo. Según la documentación de oreilly Modo de solo lectura Habrá ocasiones en que desee mirar un archivo pero desee protegerlo de las pulsaciones y cambios inadvertidos. (Es posible que desee llamar a un archivo largo para practicar movimientos vi, o puede que desee desplazarse a través de un archivo de comando o programa). Puede ingresar un archivo en modo de solo lectura y usar todos los comandos de movimiento vi, pero no podrá cambiar el archivo.Para ver un archivo en modo de solo lectura, ingrese:
o:
(El comando de vista, como el comando vi, puede usar cualquiera de las opciones de la línea de comandos para avanzar a un lugar específico en el archivo). Si decide realizar algunas modificaciones en el archivo, puede anular el modo de solo lectura al agregando un signo de exclamación al comando de escritura:
Si tiene problemas para escribir el archivo.
Para más información aquí
fuente