Como posso abrir um arquivo somente leitura na linha de comando com emacs/vi/vim

Como posso abrir um arquivo somente leitura na linha de comando com emacs/vi/vim

Existe uma maneira de informar ao emacs/vi/vim (na linha de comando) que desejo visualizar o arquivo em view-modeou read-only.

Eu sei como abrir um arquivo como somente leitura se o emacs/vi/vim já estiver em execução.

Responder1

Para emacs:

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

Não há opção de inicialização para forçar somente leitura.

Editar:
se você colocar esta pequena função em seu script de inicialização do shell (.bashrc por exemplo), poderá abrir um arquivo somente leitura digitandoev file_to_view

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

Responder2

vim -R nome do arquivo

Responder3

ver nome do arquivo

Basicamente vim em modo somente leitura; simples!

Conforme sugerido pelo comentário, caso viewesteja vinculado a plain vi, aqui estãofestacomandos para primeiro inspecionar a situação e depois corrigi-la:

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

Responder4

Pequeno acompanhamento da resposta aceita: você pode criar um alias para isso em seu shell para reduzi-lo a um único comando. Por exemplo, no bash você pode colocar o seguinte no seu .bashrc:

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

(diferentes shells terão formatos diferentes para fazer isso, mas essa é a ideia)

Eu teria adicionado isso como um comentário em resposta à resposta aceita, mas não parecia possível ter um bloco de "código" de várias linhas em um comentário e (pelo menos no bash) o código acima realmente precisa ser em 3 linhas separadas.

informação relacionada