Hoje, decidi tentar o vi em vez do Vim; Queria ver como é diferente.
Não notei nenhuma diferença. A maior coisa que percebi foi como o vi não disse -- INSERT --
quando entrei no modo de inserção e havia algumas pequenas diferenças de interface.
Isso me fez pensar, quais são as maiores diferenças entre o vi e o Vim?
Comentários
- Você obviamente não ‘ está usando muitos recursos avançados do vim. seleção de bloco, pesquisa de palavra sob o cursor, incremento de número sob o cursor, destaque de sintaxe etc.
- Postagem relacionada – Qual é a diferença entre Vi e Vim?
- Existem alguns benefícios óbvios, como suporte estendido de teclas. As teclas de seta funcionam em oposição ao hjkl.
Resposta
Na verdade, há um comando de ajuda no Vim para informar a você sobre as diferenças: :help vi_diff
(observe o sublinhado: :help vi_diff
)
Do site do Vim “, os maiores são:
desfazer ilimitado
Você pode fazer xxxx e desfazer cada uma das quatro exclusões. Quando foi da última vez que você digitou ” jjjj ” e descobriu que a tecla Caps Lock estava ativada? Você acidentalmente juntou cinco linhas e Vi pode desfaça apenas o último comando. No Vim, você pode desfazer todos os quatro comandos ” J ” e obter o texto original de volta.
portabilidade
Vi está disponível apenas em Unix. Vim funciona em MS-Windows, Maci ntosh, Amiga, OS / 2, VMS, QNX e outros sistemas. E também em todos os sistemas Unix.
realce de sintaxe
O Vim pode ser programado para destacar partes do buffer em cores ou estilos diferentes, com base no tipo de arquivo que está sendo editado. Existem centenas de conjuntos de regras de realce de sintaxe agrupados com o Vim.
GUI
O Vim funciona bem em um console, mas pode ser executado nativamente em muitas GUIs, incluindo X Windows, Mac OS e Microsoft Windows. Ele usa widgets de GUI nativos para rolar, dividir buffers e menus. Ele também pode se comunicar com a área de transferência.
Comentários
Resposta
O Vim tem muitos recursos que o Vi não possui, mesmo recursos que não são obviamente recursos “avançados”.
Na prática, isso significa que se você está acostumado com o Vi, provavelmente encontrará muito poucas diferenças se começar a usar o Vim (ou algum outro clone do Vi), mas se estiver acostumado para o Vim e se seus “reflexos” incluírem recursos como realce do modo visual, qualquer ação-chave que comece com “g” ou “z”, qualquer ação de texto com “i” ou “a” [por exemplo “daw” para deletar uma palavra sob o cursor], navegando com as teclas de seta no modo de inserção, etc, você verá que elas não funcionam no Vi.
Também há a questão do que exatamente você estava usando quando disse que “experimentou o Vi”. Em muitos sistemas, o “vi” realmente executa o Vim, em um modo onde algumas dessas diferenças se aplicam (showmode padrão como você observou, as teclas de seta não funcionam no modo de inserção) e outros não (modo visual e as teclas g / z funcionam ), e alguns recursos dependem de uma opção de tempo de compilação que às vezes é desativada no “minúsculo Vim” usado para isso (objetos de texto, como “aw” uma palavra, são um deles). Você não vai conseguir estes se você executar o Vi real , ou se “vi” for algum outro clone com menos recursos ou diferentes do Vim, como nvi ou VILE.
E, no obscuro lado, embora o “minúsculo Vim no modo Vi” obviamente não tenha quaisquer recursos que um Vim completo não tenha, existem alguns recursos do Vi original genuíno que faltam ao vim. Eles estão documentados em :help vi-differences
.
Comentários
- Eu ‘ aposto fortemente que o OP realmente tem um ” tiny vim ” vi.
- você diz que em muitos sistemas o v O comando i realmente executa o vim. Então, como faço para saber se estou realmente executando o vi ou vim?
- @firstpostcommenter Bem, ‘ basicamente ainda se parecerá com o vim – o ~ no O lado esquerdo da tela ficará azul e o texto do anúncio da versão ainda pode aparecer no centro da tela se você iniciá-lo sozinho, sem especificar um arquivo.Se você ‘ estiver muito preocupado com o editor que executa, também existem outros clones do vi que podem ser instalados, e o ” genuíno vi ” é muito raro em distribuições linux / bsd.
Resposta
A maioria das comparações fornece mais funcionalidade ao Vim do que ao vi, mas há uma exceção. Havia um modo “aberto” no vi, e o Vim realmente não tinha esse modo.
O modo aberto é um modo de linha única usado antigamente com terminais que não tinham eletrônicos telas, ou seja, teletipos, impressoras de carta e semelhantes, e também com telas onde o cursor permanece apenas na parte inferior.
Eu sei que há documentação por aí que diz que o Vim simula o modo aberto, mas minha experiência é que não funciona. Pois eu já o vi usado com o vi com meus próprios olhos e nunca vi o Vim fazer isso. Parece que o Vim apenas usa o comando open
simplesmente para abrir e editar um arquivo no modo visual. Eu acredito que a documentação oficial do Vim afirma que ele não suporta o modo aberto.
Comentários
- I tem ex-vi.sourceforge.net instalado, que é uma porta do Vi original. Como faço para iniciar este modo aberto? A página de manual menciona isso ao falar sobre
^R
, mas não oferece nenhuma outra ajuda.:open some/file
retornaopen: No such command from open/visual
. - @muru
Q
para inserir ex modo, entãoopen
.z
para mostrar o contexto da linha atual assim que ‘ estiver no modo aberto. Para voltar atrás,Q
evi
.
Resposta
O FAQ do Vim tem uma lista bem formatada: https://vimhelp.org/vim_faq.txt.html#faq-1.4
Trecho do FAQ:
- Desfazer em vários níveis
- Guias, várias janelas e buffers
- Modo de inserção flexível (pode usar teclas de seta no modo de inserção)
- macros
- modo visual (selecione visualmente as seções do texto)
- operadores de bloco
- sistema de ajuda online
- Edição e histórico de linha de comando
- Conclusão de linha de comando (preenchimento de tabulação)
- Rolagem horizontal (linhas longas)
- Unicode e melhorias de internacionalização .
Resposta
Acho que é muito difícil fazer a comparação, por causa das mudanças no vi que aconteceu com o tempo.
Quando eu estava na faculdade, usei o vi comum em um terminal burro (e também em um emulador de terminal em um Mac) que se conectava a mainframes usando o System V. Você não consegue encontrar mais.
Mas eu nem tenho certeza se isso era verdade vi. Naquela época, havia muitos clones e portas feitas porque o vi não era open-source na época. E quando os fornecedores fizeram clones, eles adicionaram recursos que não estavam no vi. A história é meio complicada. Você pode ler na Wikipedia e em outros lugares.
Então, se você não estava usando certos fornecedores / hardware, não estava usando o vi, mas algo como vi.
Mas eu me lembro do vi (ou o clone que eu estava usando) sendo muito minimalista em sua interface (sem cores, sem rótulos INSERT, sem múltiplos undos, etc.) ainda poderoso no que ele realmente poderia realizar. Muito prático.