Eu sei um pouco sobre os editores de texto * NIX (atualmente migrando de nano
para vim
) e, depois de dar uma olhada no Unix & Linux SE, percebi que vi
é usado em vez do 'vim' em um número razoável de perguntas. Eu sei que 'vim' significa 'Vi IMproved' e, com isso em mente, estou me perguntando por que alguém preferiria usar o vi em vez do vim. O vi tem alguma vantagem significativa sobre o vim?
Edit: Eu acho que minha pergunta está sendo mal interpretada. Eu sei que o vim é, na maioria das vezes, significativamente mais poderoso e completo em termos de recursos do que o vi. O que eu quero saber é se existem casos possíveis em que o vi tem uma vantagem sobre o vim, como menos uso de memória, prevalência nos sistemas * nix, etc.
vi
é que você pode esperar que ele esteja em todos os sistemas compatíveis com POSIX.vi
e nãovim
.. Ubuntu é um dos mais distro amigável btw ;-)vim
.vi
é apenas um link simbólico que eventualmente aponta paravim
a instalação padrão.vi
usar as especificaçõesvi
do POSIX . Dessa forma, você tem conhecimento portátil e também conhece extensões do Vim.Respostas:
vi
é (também) um editor padrão do POSIX . Existem muitas implementações evim
é provavelmente a mais popular, pelo menos no Linux.Embora muitos sistemas operacionais tradicionais compatíveis com Unix ofereçam
vi
implementações muito próximas do padrão,vim
adicionou muitos recursos extras que o tornam uma faca de dois gumes.Obviamente, essas extensões geralmente são projetadas para facilitar o processo de edição e fornecer recursos e funcionalidades úteis. No entanto, uma vez que você esteja acostumado a alguns deles (não os cosméticos, como coloração de sintaxe, mas aqueles que alteram o comportamento do editor), você pode facilmente esquecer que eles são específicos; e usar uma implementação diferente, incluindo as baseadas no código BSD original, pode ser muito frustrante. O oposto também é verdade.
Isso é bastante semelhante ao problema que ocorre com scripts que usam basismos não POSIX enfrentados por implementações de shell mais ortodoxas como
dash
ouksh
.fonte
O vi não tem nenhuma vantagem significativa sobre o vim, pelo contrário, é o contrário. O Vim tem mais vantagens que o Vi. Você pode estar interessado em: Por que, oh POR QUE, esses #? @! os malucos usam vi?
Editar também leia: O aprendizado do VIM vale o esforço?
fonte
Depois de passar grande parte da minha vida (sem incluir a infância) editando confortavelmente com o Vim, passei cerca de um mês usando apenas o vi. Ao fazer isso, percebi que dependia do Vim para todas as minhas necessidades de modificação de texto. Antes da minha viagem com o vi, sempre que eu tinha que substituir algum texto ou executar uma operação semelhante em um grande grupo de arquivos, eu apenas abria os arquivos no Vim e executava um
:bufdo
comando, e sempre que eu precisava recuar ou formatar alguns arquivos, Eu os abria no Vim e usava os comandos=
e o Vimgw
. Eu era dependente do Vim. Depois de perceber que o vi não possuía esses comandos, fui forçado a realizar transformações em massa de textossed
e aprendi bastante sobre outros programas, comoawk
eindent
. Embora eu tenha voltado a usar o Vim no final, o conhecimento que adquiri usando um editor com menos recursos foi substancial e provou ser extremamente útil. Além de aprender sobre ferramentas fora de um editor de texto, também me familiarizei melhor com o vi. Sempre que estou trabalhando em um novo sistema ou servidor que não possui o Vim, me sinto muito mais confortável usando o vi do que antes da minha excursão de um mês.Além disso, no mês passado, instalei o Linux em um tablet WM8650 barato e constatei uma diferença perceptível no desempenho entre o Vim e o vi, por isso tenho a tendência de usar o vi no tablet.
fonte
-i
interruptor de ambos é uma extensão GNU.) Mas você pode usá-los portably com algo parecidofor f in *; do printf '%s\n' '%!sed -e '\''some sed command'\' x | ex "$f"; done
Eu teria dificuldade em viver sem vim, mas não suporto vi . No entanto, aprender o primeiro o deixará pelo menos com uma idéia de como lidar com o posterior, quando isso é tudo o que está disponível.
A interface do vim, por padrão, é bem próxima do vi. Se estou trabalhando em um sistema com vim, a primeira coisa que faço é adicionar essas coisas a
~/.vimrc
:Há um monte de outras coisas que eu prefiro - agora, numeração, etc. - mas não importa. "enable sintaxe" apenas ativa o destaque básico da sintaxe (um pouco mais robusto: também
filetype plugin on
é fundamental); "nocp" desativa a compatibilidade do vi e é isso que começa a distinguir o vim do antigo vi (por exemplo, ele habilita oshowmode
que torna toda a experiência um pouco mais humana, já que agora você tem alguma pista sobre se está no comando ou ~ INSERIR ~ modo). "wildmenu" fornece apenas um menu de conclusão horizontal ao fazer algumas coisas, o que facilita a vida também.Os recursos de edição de texto do vim são inigualáveis - exceto o emacs, nunca vi ou ouvi falar de um software que se aproxima. Eles não são fáceis de aprender, mas uma vez que você os conhece, são muito mais rápidos que os menus do mouse para usar e muito mais dinâmicos do que as simples alternativas de macro-chave nas interfaces baseadas no menu do mouse. Para programação, às vezes uso o vim juntamente com um IDE como o Eclipse, mas faço a maior parte do trabalho no vim.
Se você seguir esse caminho, lol, consulte os plugins de preenchimento automático e lista de tags. E cuidado com o lado sombrio.
fonte
set mouse=a
também.A vantagem é que o vi geralmente pré-instalado no UNIX corporativo como AIX ou Solaris. Além disso, o vim não está acessível na mídia de instalação.
fonte
Percebi que só optei
Vi
porVIM
copiar e colar um documento de texto ou arquivo de configuração que useicat
comando. Isto porque, quando eu tentoctrl-c
e, em seguida,ctrl-v
para oVIM
documento aberto, ele força todas as linhas de ter um comentário na frente deles. Então, quando eu usoVi
paractrl-v
oupaste
para oVi
documento aberto, ele cola exatamente o que eu copiado. Fora isso, eu uso oVIM
dia todo.Desfrutar!
fonte
:set paste
Como as respostas anteriores já mencionaram, o vi vem com praticamente todos os sistemas UNIX disponíveis.
Eu só queria adicionar um exemplo. O Arch Linux é uma distribuição particularmente popular e leve, que nem o Instalador nem a distribuição base vêm com o vim por padrão, mas ambos vêm com o vi.
Isso não é uma vantagem para o vi per se , porque você pode simplesmente instalar o vim manualmente, e há pouco a ser realizado na instalação que requer um editor de texto, e nada em que o vim seja superior ao vi para o objetivo pretendido. Mas entender a diferença e que o vi é mais onipresente e leve que o vim oferece algumas vantagens de nicho.
Além disso, apenas para ser abrangente, ninguém ainda mencionou explicitamente que o vi é um precursor direto do vim. O Vim foi projetado especificamente para ser tudo o que vi era e muito mais.
Portanto, de uma maneira muito direta, o vim é superior ao vi, porque foi projetado para ser .
fonte
A única razão para usar o vi sobre o vim é quando você não tem outra escolha.
Há muitas, muitas razões pelas quais vim significa "vi melhorado"!
Tomando emprestado de um post relacionado, eu respondi: -
fonte
Isso é exercido por Vim Koans :
Master Wq e o Unix master
Um antigo mestre do Unix veio para o Master Wq. Estou preocupado, Wq. Você ensina o caminho do Vim. vi é santo, mas Vim não é; seu código se espalha, seus recursos lotam a memória; seus binários são vastos, seu comportamento inconsistente. Este não é o caminho do Unix. Temo que você engane seus alunos. O que pode ser feito?"
Mestre Wq assentiu. "Você está certo", disse ele. “Vim está quebrado. Vamos consertar isso. Começaremos?"
O antigo mestre do Unix concordou e abriu uma concha. Ele digitou:
Ele começou a codificar. O Mestre Wq assistiu por um tempo e perguntou: “Qual implementação do vi você está usando? Nvi? Vim? Elvis?
"Eu não sei", disse o mestre do Unix. "Não importa."
Mestre Wq assentiu. O mestre do Unix ficou atordoado por um momento e fechou o documento sem salvar.
fonte