¿Cómo puedo abrir un archivo de sólo lectura desde la línea de comandos con emacs/vi/vim?

¿Cómo puedo abrir un archivo de sólo lectura desde la línea de comandos con emacs/vi/vim?

¿Hay alguna manera de decirle a emacs/vi/vim (desde la línea de comando) que quiero ver el archivo en formato view-modeo read-only.

Sé cómo abrir un archivo como de solo lectura si emacs/vi/vim ya se está ejecutando.

Respuesta1

Para emacs:

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

No hay ninguna opción de inicio para forzar solo lectura.

Editar:
si coloca esta pequeña función en el script de inicio de su shell (.bashrc, por ejemplo), puede abrir un archivo de solo lectura escribiendoev file_to_view

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

Respuesta2

vim -R nombre de archivo

Respuesta3

ver nombre de archivo

Básicamente vim en modo de solo lectura; sencillos!

Como lo insinúa el comentario, en caso de que viewesté vinculado a simple vi, aquí estánintentocomandos para primero inspeccionar la situación y luego arreglarla:

# 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)

Respuesta4

Pequeño seguimiento de la respuesta aceptada: puede crear un alias en su Shell para reducirlo a un solo comando. Por ejemplo, en bash puedes poner lo siguiente en tu .bashrc:

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

(Diferentes shells tendrán diferentes formatos para hacer esto, pero ya entiendes la idea)

Habría agregado esto como 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 (de todos modos, en bash) el código anterior realmente necesita ser en 3 líneas separadas.

información relacionada