Vi vs vim, ou, existe alguma razão pela qual eu iria querer usar o vi?

79

Eu sei um pouco sobre editores de texto * NIX (atualmente migrando de nano para vim ) e, depois de olhar um pouco sobre o Unix & O Linux SE, notou que vi é usado em vez de 'vim' em um bom número de perguntas. Eu sei que 'vim' significa 'Vi IMproved', e, com isso em mente, estou me perguntando por que alguém preferiria usar vi em vez de 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 maior parte, significativamente mais poderoso e completo, então o vi é. O que eu quero saber é se há algum caso em que o vi tenha uma vantagem sobre o vim, como menos uso de memória, prevalência em sistemas * nix, etc.

    
por fouric 12.01.2013 / 05:21

9 respostas

57

vi é (também) editor padrão POSIX . Existem muitas implementações e vim é provavelmente o mais popular, pelo menos no Linux.

Embora muitos SOs tradicionais compatíveis com Unix forneçam vi implementações muito próximas do padrão, vim adicionou muitos recursos extras que fazem dela uma faca de dois gumes.

Naturalmente, 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ê está acostumado a alguns deles (não os cosméticos, como a coloração da sintaxe, mas aqueles que mudam o comportamento do editor), você pode facilmente esquecer que eles são específicos; e usar uma implementação diferente, incluindo aquelas baseadas no código original do BSD, pode ser muito frustrante. O oposto também é verdadeiro.

Isso é bem parecido com o problema que acontece com os scripts que usam os bashisms não POSIX enfrentados para implementações de shell mais ortodoxas como dash ou ksh .

    
por 19.01.2013 / 03:48
28

Nenhum vi não tem nenhuma vantagem significativa sobre o vim, e sim o contrário. Vim tem mais vantagens que Vi. Você pode estar interessado em: Por que, oh PORQUE, faça aqueles #? @! nozes usam vi?

Editar também ler: O aprendizado do VIM vale o esforço?

    
por 12.01.2013 / 07:59
24

Depois de passar uma grande parte da minha vida (sem incluir a infância) confortavelmente com o Vim, passei cerca de um mês usando apenas o vi. Ao fazê-lo, eu percebi que eu tinha sido dependente do Vim para todas as minhas modificações no texto necessidades. Antes da minha viagem com vi, sempre que eu tinha que substituir algum texto ou executar uma operação semelhante em um grande grupo de arquivos, gostaria apenas de abrir o arquivos no Vim e executar um comando :bufdo , e sempre que eu tive que recuar ou formatar alguns arquivos, eu os abria no Vim e usava os comandos = e gw do Vim. Eu era dependente de Vim. Depois de perceber que o vi não tinha esses comandos, fui forçado para realizar transformações de texto em massa com sed e aprendeu muito sobre outros programas, como awk e indent . Embora eu tenha voltado a usar o Vim no final, o conhecimento que ganhei ao usar um editor com menos recursos foi substancial e provou ser extremamente útil. Além de aprender sobre ferramentas fora de um editor de texto, eu também conheci melhor o vi. Sempre que estou trabalhando em um novo sistema ou em um servidor que não tenha o Vim, sinto muito mais confortável usando vi do que antes da minha excursão de um mês.

Além disso, no mês passado eu instalei o Linux em um tablet WM8650 barato e encontrei lá para ser uma diferença de desempenho notável entre Vim e vi, então eu costumo usar o vi no tablet.

    
por 12.01.2013 / 13:20
11

Eu teria dificuldade em viver sem vim, mas não suporto vi . No entanto, aprender o primeiro pelo menos vai deixar você com uma ideia de como lidar com o último, quando isso é tudo o que está disponível.

A interface vim, por padrão, está bem próxima do vi. Se estou trabalhando em um sistema com o vim, a primeira coisa que faço é adicionar esse material a ~/.vimrc :

syntax enable
set nocp
set wildmenu

Há um monte de outras coisas que eu prefiro - nowrap e numeração, etc - mas não importa. "syntax enable" apenas ativa o realce básico da sintaxe (um pouco mais robusto: filetype plugin on também é fundamental); "nocp" desativa a compatibilidade do vi e é isso que começa a distinguir vim do ye olde vi (por exemplo, ele ativa showmode , o que torna toda a experiência um pouco mais humana, já que você agora tem alguma dica sobre se você está no comando ou no modo ~ INSERT ~). O "wildmenu" apenas oferece um menu de conclusão horizontal ao fazer algumas coisas, o que facilita a vida também.

As facilidades edição de texto do vim são inigualáveis - além do emacs, eu nunca vi ou ouvi falar de um software que chega perto. Eles não são fáceis de aprender, mas uma vez que você os conhece, eles são muito mais rápidos do que os menus do mouse para usar e muito mais dinâmicos do que as alternativas de macros simples nas interfaces baseadas no menu do mouse. Para programação, às vezes uso o vim ao lado de um IDE como o Eclipse, mas faço a maior parte do trabalho no vim.

Se você tomar esse caminho, lol, procure nos plug-ins de autocompletar e de lista de tags. E cuidado com o lado negro.

    
por 12.01.2013 / 12:19
8

A vantagem é que o vi geralmente é pré-instalado no UNIX corporativo como o AIX ou o Solaris. Além disso, o vim não está acessível na mídia de instalação.

    
por 12.01.2013 / 09:56
1

Eu notei que apenas escolho Vi over VIM quando copio e colo um documento de texto ou arquivo de configuração que usei o comando cat . Isso porque, quando tento ctrl-c e ctrl-v no documento VIM open, ele força todas as linhas a ter um comentário na frente delas. Então, quando eu uso Vi para ctrl-v ou paste no documento Vi open, ele cola exatamente o que eu copiei. Fora isso, eu uso VIM o dia todo.

Aproveite!

    
por 15.01.2013 / 21:51
1

Como as respostas anteriores já mencionaram, o vi vem com praticamente todos os sistemas UNIX.

Eu só queria adicionar um exemplo. O Arch Linux é uma distro particularmente popular e leve que nem o Installer, nem a distro base vêm com o vim por padrão, no entanto ambos vêm com o vi.

Isto não é uma vantagem para o vi per se , porque você pode simplesmente instalar o vim manualmente, e há pouco que você precisa realizar na instalação que requer um editor de texto, e nada onde o vim seja superior para vi para o propósito pretendido. Mas entender a diferença e que o vi é mais onipresente e leve do que o vim, dá-lhe algumas vantagens de nicho.

Além disso, apenas para ser compreensivo, ninguém ainda afirmou explicitamente que o vi é um precursor direto do vim. O Vim foi especificamente projetado para ser tudo o que o vi era e muito mais.

Portanto, de uma forma muito direta, o vim é superior ao vi, porque foi projetado para ser .

    
por 28.03.2017 / 01:41
1

A única razão para usar o vi sobre o vim é quando você não tem outra escolha.

Existem muitas, muitas razões pelas quais o vim significa "vi improved"!

Empréstimo de um post relacionado eu respondi: -

  1. Várias janelas - horizontal, vertical e & guias.
  2. destaque visual.
  3. Ajuda on-line por meio do comando: help.
  4. Grave macros em um registro que você possa executar.
  5. Desfazer (e refazer) várias vezes, em vez do desfazer insano do antigo vi alternar.
  6. Histórico da linha de comando, histórico de pesquisa.
  7. Uma linguagem inteira incorporada junto com uma série de funções, por exemplo, getcwd ()
  8. Correspondência de padrões amplamente expandida.
  9. Word completion via ctrl-P & ctrl-N.
  10. Um navegador de arquivos integrado (um pouco desajeitado, mas pode ser útil).
  11. A tecla ESC realmente sai dos comandos que você estava tentando, bem,  escapar do invés de (insanamente) executá-los como vi.
  12. Capacidade de executar comandos em todos os buffers, args ou windows via bufdo,  argdo & windo.
por 21.02.2018 / 07:07
1

Isso é feito de Vim Koans :

Mestre Wq e o mestre Unix

Um antigo mestre Unix veio ao mestre Wq. “Estou com problemas, Wq. Você ensina o caminho do Vim. vi é sagrado, mas Vim não é; seu código se expande, suas características são a memória da multidão; 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 balançou a cabeça. "Você está certo", disse ele. “Vim está quebrado. Vamos consertar isso. Vamos começar? ”

O antigo mestre do Unix concordou e abriu um shell. Ele digitou:

$ vi vim.c

Ele começou a codificar. Mestre Wq observou por um tempo e depois perguntou a ele: “Qual implementação do vi você está usando? Nvi Vim? Elvis? ”

"Eu não sei", disse o mestre do Unix. "Isso não importa."

Mestre Wq balançou a cabeça. O mestre do Unix ficou atordoado por um momento e fechou seu documento não salvo.

    
por 28.08.2018 / 20:53

Tags