Por que não consigo alterar a entrada padrão do Vim para algum arquivo no disco usando redirecionamento?

Por que não consigo alterar a entrada padrão do Vim para algum arquivo no disco usando redirecionamento?

Eu estava lendo o "O sistema de compartilhamento de tempo UNIX Dennis M. Ritchie e Ken Thompson" papel e como exemplo de redirecionamento de entrada/saída padrão, dá o exemplo do editor ed:

O comando ed <scriptinterpreta o script como um arquivo de comandos do editor; portanto, “ <script” significa “obter informações de script.”

No entanto, se eu tentar o mesmo usando o vim, recebo um erro dizendo "Erro ao ler a entrada":

[m@localhost rough]$ vim t2 <t
Vim: Warning: Input is not from a terminal
Vim: Error reading input, exiting...
Vim: preserving files...
Vim: Finished.

Por que é tão?

Responder1

ede exsãoeditores de linha. Eles têm o tipo de interface de usuário que pode ser controlada por linhas em um arquivo de texto.

vie todos os seus clones, como o VIM, sãoeditores de tela cheia. Eles possuem interfaces de usuário que não tratam entrada e saída como linhas de arquivo de texto. A entrada consiste em caracteres individuais e sequências de caracteres não agrupadas em linhas. A saída são caracteres individuais e sequências de escape e controle para desenho em um terminal de vídeo.

O modelo deE/S do usuáriojá que os arquivos de texto não são mapeados para programas TUI interativos de tela inteira, muito menos para programas GUI.

O comportamento que você obtém varia de programa para programa. Alguns programas TUI de tela inteira reconhecerão quando sua entrada padrão não for um terminal e serão abortados, como nvio faz. Outros, como o VIM, avisarão, mas tratarão o arquivo de entrada não terminal como entrada de terminal, gerando um comportamento um tanto estranho para pessoas que esperam que a entrada seja tratada como comandos de script. Ainda outros, como lesspor exemplo, abrem explicitamente um dispositivo terminal para a interface do usuário e não usam E/S padrão para (a parte de entrada) dela. Outros ainda, como a maioria dos shells (que, observe, possuem interfaces de usuário interativas que vão além do modo de linha), passam para um modo não interativo.

Um artigo escrito sobre Unix em 1974 não será um bom guia para a diferença entre interfaces de usuário em modo linha e interfaces de usuário em tela cheia. Possivelmente o primeiro editor Unix para terminais de vídeo, George Coulouris em, estava um ano no futuro. Também no futuro surgiram termcap, shells com edição de linha de comando (própria) e padrões de disciplina de linha que usavam caracteres especiais não gráficos.

informação relacionada