Existe uma maneira de dizer ao emacs / vi / vim (na linha de comando) que eu quero visualizar o arquivo em view-mode
ou read-only
.
Eu sei como abrir um arquivo como somente leitura se o emacs / vi / vim já estiver em execução.
linux
command-line
vim
emacs
Nifle
fonte
fonte
Respostas:
Para o emacs:
Não há opção de inicialização para forçar somente leitura.
Editar:
se você colocar esta pequena função no script de inicialização do shell (.bashrc, por exemplo), poderá abrir um arquivo somente leitura, digitando
ev file_to_view
fonte
vim -R nome do arquivo
fonte
ver nome do arquivo
Basicamente vim no modo somente leitura; simples!
Como sugerido pelo comentário, caso
view
esteja vinculado a plainvi
, aqui estão os comandos bash para primeiro inspecionar a situação e depois corrigi-la:fonte
vim
possui realce de sintaxe, masview
não, talvezview
seja um link para uma versão mínima dovim
que não tenha realce de sintaxe compilado. Compare as saídas do:version
comando.argv[0]
para decidir seu comportamento. É um truque comum; Às vezes, o AFAIK GCC e Bash também fazem isso.permite escrever com
:w!
Impede que o usuário faça alterações no arquivo no buffer. Mas o usuário pode tornar o buffer modificável com
:set modifiable
Você poderia usar
para impedir que o usuário desative o "nomodificável" e permita que o usuário saia pressionando
q
. Mas, então, o usuário não pode entrar no modo de comando, o que pode ou não ser o que você deseja.Você também pode abrir o arquivo com o comando less:
Para visualizar o arquivo em um ambiente semelhante ao vim, mas sem a capacidade de alterar o arquivo.
fonte
less
, embora como @nxdrvr aponte, você pode pressionar a tecla v para abrir o arquivo no modo editável emvi
Pequeno acompanhamento para a resposta aceita: você pode usar o alias no shell para reduzi-lo a um único comando. Por exemplo, no bash, você pode colocar o seguinte no seu .bashrc:
(conchas diferentes terão formatos diferentes para fazer isso, mas você entendeu)
Eu adicionaria isso como um comentário em resposta à resposta aceita, mas não parecia possível ter um bloco "código" de várias linhas em um comentário e (no bash de qualquer maneira) o código acima realmente precisa ser em 3 linhas separadas.
fonte
Para visualizar apenas o arquivo sem a capacidade de editar:
Em
less
você pode ir para "editar modo de arquivo" pressionando a vtecla Mas você não pode editar a entrada padrão; portanto, canalizar a saídacat <file>
para menos, paraless
de ir para o modo 'editar' pressionando 'v'.Para vim, a mesma abordagem
fonte
v
sugestão. Bacana.cat
. Apenas use<FILENAME less
.<file> less
daria um erro, suponho que você quis dizerless <file>
, mas, conforme explicado na resposta, ao usarless
diretamente, o usuário pode pressionar a tecla v e entrar no modo de edição. Tubulaçãocat
paraless
impedir que isso aconteça.less < FILENAME
, o que lhe dá "Não é possível editar a entrada padrão" quando você pressiona V . Da mesma forma com Vim:vim - < FILENAME
.Para o emacs, você também pode usar o modo de exibição .
ou alternativa dentro de um terminal:
Ou você pode usar meu script wrapper
fonte
No emacs você pode fazer
O realce da sintaxe é aplicado. Ele não abre apenas o arquivo como um buffer somente leitura. Alguns comandos, como a pesquisa I, são acessíveis sem a tecla Control neste modo.
fonte
enviar um arquivo para fora do padrão, pode ser aceitável, dado o tamanho do arquivo
fonte
Não vou discordar para que ninguém responda aqui, mas gostaria de acrescentar mais informações sobre o
Read-only Mode
arquivo. De acordo com a documentação detalhada Modo somente leitura Às vezes, você deseja examinar um arquivo, mas deseja protegê-lo contra pressionamentos e alterações de teclas inadvertidas. (Você pode chamar um arquivo longo para praticar os movimentos do vi ou pode rolar através de um arquivo ou programa de comando). Você pode inserir um arquivo no modo somente leitura e usar todos os comandos do movimento vi, mas não poderá alterar o arquivo.Para examinar um arquivo no modo somente leitura, digite:
ou:
(O comando view, como o comando vi, pode usar qualquer uma das opções da linha de comandos para avançar para um local específico no arquivo.) Se você decidir fazer algumas edições no arquivo, poderá substituir o modo somente leitura por adicionando um ponto de exclamação ao comando write:
Se você tiver algum problema ao escrever o arquivo.
Para mais ref aqui
fonte