Por que Vi tem vários modos?

6

Por que o Vi tem vários modos? Não estou interessado nas funções dos modos, a menos que tenha sido uma razão para ter modos diferentes. Estou interessado apenas nas razões de design / engenharia para vários modos.

    
por DanBeale 29.06.2014 / 16:02

2 respostas

12

Considerando os dois modos principais, COMMAND e INSERT, demonstra o propósito de uma interface modal.

No modo INSERIR, você pode digitar normalmente, inserindo texto no documento. Você pode ligar chaves para executar funções especiais, embora estas sejam geralmente limitadas em complexidade.

O modo COMMAND é como uma função especial ilimitada. Algo semelhante poderia ter sido implementado usando Ctrl , para que você mantenha pressionado e pressione outra tecla especial, e na verdade a maioria dos editores genéricos funciona dessa maneira: você usa ctrl-x para cortar, ctrl -p para colar, etc. No entanto, esse método limita o que você pode fazer; seria um pouco difícil segurar o ctrl e digitar "open myfile.txt".

Os editores de GUI e alguns editores de TUI geralmente contornam isso com menus suspensos. No entanto, isso ainda é limitado: se você tiver muitos recursos, acabará precisando de conjuntos de menus aninhados em cascata.

vi , que vim é baseado em (e duplica a funcionalidade de) não usa menus suspensos, embora ele seja baseado em tela. Uma explicação para isso é que se pretende que seja uma extensão padronizada do utilitário padronizado ed , que é baseado em linha e portanto, não pode usar menus visuais. Alguns dos comandos básicos do modo vi COMMAND são derivados de ed - em vez de substituir um comando por uma opção de menu, os mesmos comandos ed baseados em texto funcionam no vi (e são expandidos).

Existe, é claro, uma vantagem para tudo isso, e provavelmente é uma das principais razões para a popularidade histórica de vim . Menus requerem que você role através de conjuntos de opções, com interfaces TUI sem um mouse, isso pode exigir um modo especial de qualquer maneira para acessar, ou usar as teclas F, etc. Eles são indiscutivelmente ainda mais desajeitados em um aplicativo GUI em que você precisa tirar a mão do teclado e manipular um mouse e, em seguida, há as limitações à complexidade mencionadas no último parágrafo. 1 vim da escolha de um interface modal não sofre com esses problemas. Também maximiza a área útil da tela.

Poderia ser observado que o aspecto edição de muitas aplicações gráficas grandes e complexas, como ambientes de desenvolvimento integrados (IDEs) e processadores de texto, é deficiente comparado ao vim por causa do simples menu não modal, menu e interface controlada por ctrl. Considerado desta forma, o motivo pelo qual o vim usa os modos é torná-lo uma ferramenta mais poderosa.

1. Embora gvim tenha menus suspensos duplicando muitos comandos comuns, eles são desajeitados em comparação ao modo COMMAND; a única vantagem para um sistema de menu é que é fácil de aprender. Você não precisa se lembrar de muita coisa, mas leva mais tempo para fazer tudo.

    
por 29.06.2014 / 17:27
1

Se não tivesse um modo de controle e um modo de inserção, não teria sido capaz de distinguir entre as operações em um texto e o próprio texto.

    
por 29.06.2014 / 16:46

Tags