A resposta aceita provavelmente é um tratamento bom e curto, mas isso será uma tentativa de aprofundar quando a distinção entre VISUAL e EDITOR ainda pode ser importante (possivelmente com base na resposta de Adam Katz).
A especificação POSIX ainda distingue entre editores de modo visual e editores de linha. Isso realmente importava nos dias em que o posicionamento do cursor sobre conexões seriais era difícil (especialmente devido à velocidade da conexão serial). O artigo da Wikipédia para o vi fornece algumas informações úteis sobre a distinção entre vi (um editor de modo visual) e ex (um editor de linha ). Se você aprofundar bastante a pesquisa, encontrará a seção "RACIONAL" do "ex "spec , que dá uma razão para a distinção ainda estar na especificação:
It is recognized that portions of vi would be difficult, if not
impossible, to implement satisfactorily on a block-mode terminal, or a
terminal without any form of cursor addressing, thus it is not a
mandatory requirement that such features should work on all terminals.
It is the intention, however, that a vi implementation should provide
the full set of capabilities on all terminals capable of supporting
them.
Eu não precisei disso desde que desisti do meu modem de 300 bauds, mas posso imaginar que as pessoas que usam linhas seriais lentas para se conectar a sistemas embarcados (e / ou conexões realmente perigosas) podem ainda aprecio poder ter um editor de modo de linha preferido distinto de um editor "visual" como o vi. Os códigos de terminal do tipo VT100 em uma conexão com perda, lenta e estreita podem ser "inchados" em aplicativos limitados.
Para o resto de nós, parece que a resposta "correta" parece ser "definir os dois como seu editor preferido". Pode ser ok cooptar essa distinção para editor local / gráfico (por exemplo, Sublime ou gvim) versus um editor de janela de terminal (por exemplo, vi ou emacs), mas provavelmente há uma montanha de motivos herdados por que isso provavelmente não funcionará como esperado .