Existem casos em que vi é a única opção?

22

Existem cenários em que vié a única opção para criar, editar ou modificar um arquivo em um ambiente Ubuntu?

Minha pergunta é basicamente saber realmente se existe um caso em que eu seria forçado a usar, viporque seria a única opção disponível em um caso específico no ecossistema do Ubuntu.

Poderia um exist caso particular em que eu de alguma forma não teriam acesso a outras opções como nano, picoou simplesmente enviar as informações com ferramentas como cat, sed, teee mais?

Eu diria que isso é mais do lado do servidor ou da nuvem, pois na área de trabalho há muito mais opções, mas de quem usa muito o terminal, pergunto:

Existe esse caso?

Luis Alvarado
fonte
8
@ Tim Na verdade visudopode usar qualquer editor. Como sua configuração padrão no Ubuntu respeita as variáveis ​​de ambiente EDITORe VISUAL, você pode executar o sudo env VISUAL=emacs visudoemacs ou mesmo gksudo env VISUAL=gedit visudoum editor gráfico como o Gedit. ( sudo -Hou sudo -ipode ser usado no lugar de gksudo.) Sugiro dessa envmaneira, pois VISUAL=emacs sudo visudonão funcionará ( sudoredefine a maior parte do ambiente) e sudo -EH pode ser considerado desaconselhável.
Eliah Kagan
3
vi é a única opção ... quando vi é o único editor instalado que você conhece e não deseja gastar tempo instalando outro. O vi é a melhor opção quando vi é o editor que você mais conhece e gosta entre os disponíveis e não quer gastar tempo instalando um que mais goste. NUNCA existe um caso em que apenas uma ferramenta possa resolver um problema; pode haver momentos em que as escolhas são restritas. E algumas pessoas realmente gostam de vi. (. Não me que eu sou um fanático Emacs Embora eu pode tolerar muitos editores..)
keshlam
3
cat? sed? Sério? virealmente não é tão complicado, e se você realmente não pode se incomodar em aprender, você só precisa se lembrar de dois modos (modo Normal e Inserir). Você move o cursor com setas (ou HJKL, se não estiver disponível), pressione "i" para iniciar a edição (modo de inserção). Quando terminar, pressione "Esc" para voltar ao modo normal. Digite ": wq" para salvar e sair (gravação + sair).
sleblanc 28/08/14
2
basta aprender e aprender o vi :) Não é tão difícil quanto parece e, depois que você o conhece, nunca perde tempo procurando outros editores em qualquer sistema novo que você usar.
precisa saber é o seguinte

Respostas:

32

Dentro do ecossistema do Ubuntu , eu não acho que esse caso possa sequer existir , como viseria pelo menos um pouco pequeno, que já é um "real vim" longe de "real vi".

No contexto de sistemas embarcados com recursos limitados , que normalmente não são Ubuntu, você pode apenas ter um vique acaba por ser um link para busybox. E não resta espaço. Então, vié a única opção.

Além disso, acho que situações em que via única opção não são muito comuns hoje em dia, mesmo fora do mundo Linux .

Mas pode haver facilmente situações em que vié a única opção que você pode planejar , a única opção que certamente existirá em alguma situação futura - o que acontecerá dentro da sala de servidores sobrecarregada de um cliente, provavelmente.

Imagine que você é chamado por um cliente:

Cliente: Preciso corrigir esta configuração! Agora!! Não sei como, mas posso dizer onde está o arquivo de configuração. Pode me ajudar!?!

Você: Ok, em que tipo de sistema esse sistema está sendo executado?

Cliente: Ah, está no servidor foo, ahh ... está funcionando ... não consigo lembrar, algo com "ix" no final ou mayeb com "ux" ...

Não tem problema, até agora, você sabe que haverá vi!

Volker Siegel
fonte
1
Eu pessoalmente trabalhei em vários sistemas embarcados que continham apenas vi como editor de texto; acredito que o buildroot e o yocto o possuem como o único editor ao usar opções mínimas de configuração. É certo que este não é um problema no ubuntu, mas se você é um desenvolvedor incorporado, isso pode ser um problema real. No entanto, você sempre pode, como o OP disse, usar ferramentas baseadas em tubos, como sed, sort, grep e outras, no entanto, isso pode ser muito doloroso.
Vality 27/08/14
O caso do busybox é realmente bom. O que é irritante é que eu não acho que seja um vi completo (pelo menos não foi uma década atrás, e espero que eles não tenham inchado, mesmo que seja irritante).
Hyde
1
busybox vié 4k linhas:; curl -s https://gitorious.org/busybox/busybox/raw/1c7a58dfb82ea04c525e0c19f94f2d800dee99e3:editors/vi.c | wc)
Volker Siegel
17

Vi nunca é a única opção; você sempre pode usar ed.

evilsoup
fonte
8
No Arch Linux, por exemplo, ednão faz parte do base.
Muru
@muru FWIW vimtambém não é.
Sparhawk 28/08
4
@Sparhawk viis.
Muru
@ muru Ah sim, é claro. Eu estava me confundindo.
Sparhawk 29/08
edé apenas parte da standard^instalação. Se você faz uma minimalinstalação, ednão está incluído.
Oli
13

Bem, há um caso em que você precisa do vieditor, vamos assumir:

  • não existe interface gráfica
  • você está em algum *nixsistema desconhecido
  • seu terminal fica assim:

insira a descrição da imagem aqui

  • você tem o suficiente de caras como este:

insira a descrição da imagem aqui

Como você pode ver, não há teclado numérico . Com a velha vi(e eu quero dizer o original tradicionalvi , não vim, vim.tinyou vim.basic), você pode editar um arquivo com este teclado. Sem as setas ? Sim, quando você está no modo de comando você moveu através do arquivo com h, j, ke l, como um profissional. hfoi deixado, jcaiu, kfoi levantado e lestava certo.

caos
fonte
5
Acho que essa resposta não é tão ruim (teclados parecidos com máquinas de escrever não é uma coisa completamente improvável de se encontrar), mas, na verdade, isso não significa que você precise viem particular. Todos os editores de texto mais antigos têm combinações de teclas de "backup" que permitem que você trabalhe sem as teclas de seta, etc., embora eu ouse dizer que vié o único editor em que você não perderá as teclas de seta.
precisa saber é o seguinte
Um pouco fora do tópico: não vejo por que você precisaria de um teclado numérico para qualquer editor de texto, e as teclas de seta são inúteis no Vim. : P
Doorknob
1
Ei, não desconte o bom e velho ed! Não há necessidade desses truques "visuais" em um sistema como esse! Apenas tente usar o vim no terminal em papel e veja como você gerencia ... Mais a sério, o conhecimento edé útil de qualquer maneira, é uma opção decente quando a edição precisa ser executada por script.
Hyde
como você alternar para o modo de comando com esse teclado (não vejo fuga, estava lá uma outra combinação chave para isso?)
Foon
@Foon Há uma tecla de escape =) É onde a guia deve estar normalmente. À esquerda da tecla Q.
caos
6

O fato é que, em muitas distribuições, os editores gostam nanoe picosimplesmente não são padrão, enquanto outros pacotes, a saber, vim-tinysão. Veja aqui a lista de pacotes do ubuntu-minimal, vim-tinyé o único editor . De acordo com esta resposta, parece ser o caso do servidor Ubuntu também. Eu sei que este é o caso do Debian básico, do Fedora também.

Dito isto, considerando que, se você possui nanoum sistema, ainda não vi um caso em que você precisaria usar vi, mas, reproduzindo a resposta de @ Volker, se você estiver trabalhando para um cliente e não tiver acesso root? apt-get install nanonão vai lhe fazer muito bem (se ele ainda tiver acesso à internet externa!).

Mitch
fonte
4

Existem vários casos em que vi(e com isso quero dizer naturalmente vim.tinyporque é isso que enviamos) poderia ser o único editor interativo. Se ignorarmos borboletas e raios cósmicos, essas parecem as ocasiões mais prováveis ​​em que isso pode acontecer:

  • Você está usando apenas o ubuntu-minimalmeta-pacote base. Isso depende, vim-tiny mas não de outros editores. No momento, não consigo encontrar uma maneira de instalar o Ubuntu sem a standard^tarefa, mas você pode removê-lo após a instalação com:

    sudo apt-get remove $(apt-cache show standard^ | awk '/Package: / {print $2}')
    

    Tenho experiência pessoal em que recebi uma imagem do sistema sem a standard^tarefa instalada. Se eu não tivesse acesso à rede viteria sido minha única opção.

  • Fazendo chroot em um ambiente que apenas mapeava viatravés

  • Nuking manual de todos os outros editores (e desativação dos meios para reinstalá-los)

  • Quebrar manualmente o shell para interromper editores conhecidos, exceto o vilançamento.

Uma instalação verdadeiramente mínima será o motivo mais provável, mas esses são bastante raros atualmente. Algumas empresas de hospedagem em nuvem e VPS as utilizam (para economizar espaço em disco tanto quanto qualquer outra coisa), mas eu sugeriria que elas definitivamente não são a norma.

Oli
fonte
Uma resposta incrível como sempre. Eu acho muito experiente.
Luis Alvarado
2

Nos casos em que você não pode instalar o emacs, ou nos casos em que é necessário modificar um arquivo de configuração para permitir a instalação do emacs. :-p

Craig
fonte
Ou nos casos em que você deseja usar um editor superior que seja melhor que o emacs. ( cue flamewar ): P
Maçaneta da porta
3
Certamente, se você estiver usando o Ubuntu, então você já tem um sistema operacional, de modo emacs seria redundante: v
evilsoup
Ei, bom comback. :-p
Craig
2

Muitas instalações (a maioria?) Da Busy-Box possuem apenas vi.

Não é específico do ubuntu, mas é verdade para muitos dispositivos incorporados.

Nome falso
fonte
2

Sempre tem gato, cabeça, rabo ... então não tenho certeza de que existe um sistema em que você não tenha alternativa, mas é possível encontrar sistemas em que não há uma alternativa melhor, mesmo se você preferir o emacs.

Meu exemplo foi um sistema que administrei uma vez, que era tão lento (ou que a linha era lenta e com perdas) que, ao navegar com as teclas do cursor, muitas vezes alternava repentinamente para inserir e injetar lixo no arquivo editado e usar HJKL para movimento foi a única opção confiável.

Edheldil
fonte
1
E, claro, as boas e velhas borboletas !
usar o seguinte comando
2

Aqui está o caso em que o vim é a única opção no ecossistema do Ubuntu: Ubuntu Snappynão vem com nenhum editor de texto que não seja vim-tiny. Talvez no futuro haja um, mas não a partir de 2015-16. Se você estiver usando o Ubuntu Snappy sobre console serial ou ssh, é melhor estar preparado para usar vim.

Sergiy Kolodyazhnyy
fonte
0

Entrei em uma situação em que apenas o modo de linha do vi estava funcionando. Algo relacionado a ter realmente estragado as definições dos terminais. Basicamente, apenas vi no modo de linha (isso se comporta como o vi normal, se você fingir que possui um terminal de 1 linha), ex e ed estavam funcionando porque a única definição de terminal era "burra".

Joshua
fonte