¿Hay alguna manera de decirle a emacs / vi / vim (desde la línea de comandos) que quiero ver el archivo en view-mode
o 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_view
fuente
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
view
esté vinculado a simplevi
, aquí hay comandos bash para inspeccionar primero la situación y luego solucionarla:fuente
vim
tiene resaltado de sintaxis peroview
no lo tiene, quizás suview
es un enlace a una versión mínimavim
que no tiene resaltado de sintaxis compilado. Compare las salidas del:version
comando.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 modifiable
Podrí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 envi
Pequeñ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
less
puede 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, dejaless
de ir al modo 'editar' al presionar 'v'.Para vim el mismo enfoque
fuente
v
sugerencia Hábil.cat
. Solo úsalo<FILENAME less
.<file> less
daría un error, supongo que lo dices en serioless <file>
, pero como se explica en la respuesta, cuando se usaless
directamente, el usuario podría presionar la tecla v y entrar en modo de edición. La tuberíacat
aless
evita 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 Mode
archivo. 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