Vi vs vim, ou há alguma razão para eu querer usar o vi?

Eu sei um pouco sobre * editores de texto NIX (atualmente migrando de nano para vim), e, depois de dar uma olhada no Unix & Linux SE, notei 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 prefere usar vi em vez de vim. O vi tem alguma vantagem significativa sobre o vim?

Editar: acho que minha pergunta está sendo mal interpretada. Eu sei que o vim é, na maior parte, significativamente mais poderoso e completo 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 em sistemas * nix, etc.

Comentários

  • A coisa boa sobre vi é que você pode esperar que ele esteja em todos os sistemas compatíveis com POSIX.
  • Na verdade, a instalação padrão do Ubuntu inclui vi e não vim .. O Ubuntu é uma das distros mais fáceis de usar, btw 😉
  • @amyassin This está incorreto, o Ubuntu, como a maioria das distribuições Linux, inclui vim. vi é apenas um link simbólico que eventualmente aponta para vim na instalação padrão.
  • Meu conselho é: use Vim, mas aprenda vi usando as especificações POSIX para vi . Dessa forma, você tem conhecimento portátil e também conhece as extensões do Vim.
  • @DDK Você perdeu ” eventualmente ” na minha declaração. ” ls -l / etc / alternative / vi ” – > ” lrwxrwxrwx 1 root 17 janv. 1 2016 / etc / alternative / vi – > /usr/bin/vim.tiny”

Resposta

vi é (também) um editor padrão POSIX . Existem muitas implementações e vim é provavelmente o mais popular.

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

Claro, 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 com 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 usando uma implementação diferente, incluindo aquelas baseadas no BSD original O código pode ser muito frustrante. O oposto também é verdadeiro.

Isso é bastante semelhante ao problema que acontece com scripts que usam bashismos não POSIX enfrentados por implementações de shell mais ortodoxas como dash ou ksh.

Resposta

Nenhum vi não tem qualquer vantagem significativa sobre o vim é o contrário. O Vim tem mais vantagens do que o Vi. Você pode estar interessado em: Por que, oh POR QUÊ, fazer isso #? @! nutheads usam vi?

Editar também leia: Aprender VIM vale o esforço?

Comentários

  • Sim. Não ‘ não uso nenhum IDE porque os editores que eles forçam você a usar apenas isn ‘ t Vim.
  • @Keith, eu uso o Xcode e o Eclipse e ‘ ainda sou capaz de editar apenas com o vi.
  • @Keith SlickEdit tem uma ótima emulação do Vim e IDEA ‘ s está chegando perto disso. Além disso, o Visual Studio tem ViEmu.
  • IntellIJ também tem um bom plugin vim substituindo o comportamento do editor padrão ‘.

Resposta

Depois de passar uma grande fração da minha vida (não incluindo 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 de minha viagem com o vi, sempre que eu tinha que substituir algum texto ou realizar uma operação semelhante em um grande grupo de arquivos, eu apenas abria os arquivos no Vim e executava um comando :bufdo , e sempre que eu precisava recuar ou formatar alguns arquivos, eu os abria no Vim e usava os comandos Vim “s = e gw Eu era dependente do Vim.Depois de perceber que o vi não tinha esses comandos, fui forçado a realizar transformações de texto em massa com sed e aprendi muito sobre outros programas, como awk e indent. Embora eu tenha voltado a usar o Vim no final, o conhecimento que ganhei 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 conheci melhor o vi. Sempre que estou trabalhando em um novo sistema ou em um servidor que não tem o Vim, me sinto muito mais confortável usando o vi do que antes de minha excursão de um mês.

Além disso, no mês passado instalei o Linux no um tablet WM8650 barato e descobri que há uma diferença notável de desempenho entre o Vim e o vi, então eu tendo a usar o vi no tablet.

Comentários

  • Acho que este é um problema comum em TI – as ferramentas que nos ajudam também podem obscurecer coisas que ‘ seria melhor aprender.
  • Na verdade, lidar com a edição de arquivos in-loco em muitos arquivos pode ‘ portably ser feita com Awk ou Sed qualquer um . (O -i ligar ambos é uma extensão GNU.) Mas você pode usá-los portavelmente com algo como for f in *; do printf '%s\n' '%!sed -e '\''some sed command'\' x | ex "$f"; done

Resposta

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

A interface do vim por padrão é na verdade muito próxima do vi. “estou trabalhando em um sistema com o vim, a primeira coisa que faço é adicionar essas coisas a ~/.vimrc:

syntax enable set nocp set wildmenu 

Há um monte de outras coisas que eu prefiro – nowrap e numering on, etc – mas não importa. “Syntax enable” apenas ativa o realce de sintaxe básico (um pouco mais robusto: filetype plugin on é fundamental também); “nocp” desativa a compatibilidade do vi e é isso que começa a distinguir o vim do seu olde vi (por exemplo , habilita showmode o que torna toda a experiência um pouco mais humana, já que agora você tem alguma pista sobre se está no comando ou no modo ~ INSERT ~). “wildmenu” apenas fornece uma menu de conclusão horizontal ao fazer algumas coisas, o que torna a vida mais fácil também.

Os recursos de edição de texto do vim são incomparáveis – além do emacs, nunca vi ou ouvi falar de um software que se aproximasse disso. Eles não são fáceis de aprender, mas uma vez que você os conheça, 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 macro chave simples em interfaces baseadas no menu do mouse. Para programação, às vezes uso o vim junto com um IDE como o Eclipse, mas faço a maior parte do trabalho no vim.

Se você escolher esse caminho, lol, dê uma olhada nos plug-ins de preenchimento automático e lista de tags. E cuidado com o lado negro.

Comentários

  • Eu sempre adiciono set mouse=a também.
  • Em relação à sua programação comentário, você pode achar eclim interessante …
  • @ire_and_curses: haven ‘ t tentei. O Eclipse e o vim monitoram os arquivos de origem e permitem que eles sejam atualizados externamente, e passar de um desktop para outro é passar de um desktop para outro. Parece uma boa ideia, embora.
  • Embora eu não ‘ ache que esta resposta deva ser a resposta escolhida (uma vez que ‘ é tendenciosa), ‘ é exatamente o tipo de perspectiva que é útil para entender as diferenças. Obrigado por tomar uma posição.

Resposta

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

Resposta

Isto é extraído de Vim Koans :

Master Wq e o mestre Unix

Um antigo mestre Unix veio para o Master Wq. “Estou preocupado, Wq. Você ensina o caminho do Vim. vi é sagrado, mas Vim não é; seu código se espalha, seus recursos aglomeram a memória; seus binários são vastos, seu comportamento inconsistente. Este não é o jeito do Unix. Temo que você engane seus alunos. O que pode ser feito? ”

Mestre Wq assentiu. “Você está certo”, disse ele. “O Vim está quebrado. Deixe-nos consertar. Vamos começar? ”

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

$ vi vim.c 

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

“ Não sei ”, disse o mestre Unix. “Não importa.”

Mestre Wq assentiu. O mestre Unix ficou atordoado por um momento e fechou seu documento sem salvar.

Comentários

  • hahah … isso é engraçado para mim …. profundo, mas engraçado.Obrigado por compartilhar.

Resposta

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

Eu só queria adicionar um exemplo. Arch Linux é uma distribuição particularmente popular e leve, que nem o instalador, nem a distro base vem com o vim por padrão, no entanto, 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á pouca coisa que você precisa realizar na instalação que requer um editor de texto, e nada onde o vim é superior ao vi para a finalidade pretendida. Mas entendendo a diferença e que 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 que o vi era, e muito mais.

Então, de uma maneira muito direta, o vim é superior ao vi, porque foi projetado para ser .

Resposta

O único motivo para usar o vi em vez do vim é quando você não tem outra escolha.

Há muitos, muitos motivos para vim defende r “vi melhorou”!

Pegando emprestado de uma postagem relacionada, respondi: –

  1. Várias janelas – horizontal, vertical & guias.
  2. Destaque visual.
  3. Ajuda online por meio do comando: help.
  4. Grave macros em um registro que você pode executar.
  5. Desfazer (e refazer) várias vezes, em vez do botão de desfazer insano do antigo vi.
  6. Histórico de linha de comando, histórico de pesquisa.
  7. Uma linguagem inteira incorporada junto com uma série de funções disponíveis, por exemplo getcwd ()
  8. Correspondência de padrões amplamente expandida.
  9. Conclusão de palavras via ctrl-P & ctrl-N. li>
  10. Um navegador de arquivos embutido (um pouco desajeitado, mas pode ser útil).
  11. A tecla ESC na verdade fecha os comandos dos quais você estava tentando, bem, escapar em vez de executá-los (insanamente) assim como o vi.
  12. Capacidade de executar comandos em todos os buffers, args ou janelas via bufdo, argdo & windo.

Comentários

  • Você provavelmente poderia ter trazido os ” muitos, muitos ” motivos mencionados em unix.stackexchange.com/a/425597/85039 responda aqui. Isso ‘ d torna essa resposta um pouco melhor; caso contrário, parece mais um comentário do que uma resposta real
  • Observação. Resposta atualizada, pegando emprestado de uma resposta relacionada que fiz ontem.

Resposta

Percebi que apenas escolha Vi em vez de VIM quando Estou copiando e colando um documento de texto ou arquivo de configuração que usei o comando cat. Isso ocorre porque quando eu tento ctrl-c e então ctrl-v para o VIM documento aberto, ele força todas as linhas a terem um comentário na frente delas. Então, quando eu uso Vi para ctrl-v ou paste no Vi documento aberto, ele cola exatamente o que copiei. Fora isso, eu uso VIM o dia todo.

Divirta-se!

Comentários

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *