Vantagens de usar set -o vi

49

Eu tenho visto muitos desenvolvedores usando este comando para definir a opção para vi. Eu nunca entendi o uso real disso?

Ao usar comandos bash, que ajuda a mudança para o vi fornece?

    
por Chander Shivdasani 31.01.2012 / 07:43

8 respostas

48

Definindo sua edição de linha de leitura para o emacs (o padrão) ou vi ( set -o vi ) você está padronizando seus comandos de edição, através do shell e do seu editor de escolha 1 .

Assim, se você quiser editar um comando no shell, use os mesmos comandos 2 que faria se estivesse no seu editor de texto. Isso significa ter apenas que lembrar uma sintaxe de comando e (se isso não for suficiente) provavelmente tornaria sua edição em ambos os ambientes mais rápida e menos propensa a erros ...

Você pode aproveitar ainda mais essa relação no vi-mode, obtendo qualquer comando do seu histórico de shell, pressionando Escape para entrar no modo de comando e, em seguida, pressionando v , abra seu $ EDITOR com o comando carregado para edição mais complexa com todo o poder do vim. Quando terminar de editar o comando para sua satisfação, : wq e o comando será executado novamente no seu shell.


1. Supondo, claro, que você use Emacs ou Vi / m como seu editor.
2. Ou, mais precisamente, um subconjunto dele ...

    
por 31.01.2012 / 08:02
7

O modo Vi é uma grande melhoria de usabilidade se você estiver usando um cliente SSH móvel como o ConnectBot para Android.

Isso se deve a uma dependência reduzida das teclas modificadoras.

O Vim é muito mais fácil de usar com um teclado virtual em um smartphone ou tablet do que ... qualquer outra coisa, incluindo os métodos de edição nativos integrados à interface do Android. Ironicamente, é mais fácil editar fontes C com o Vim em uma sessão SSH do que editar, digamos, uma mensagem instantânea.

O modo shell vi traz um benefício semelhante.

    
por 28.11.2013 / 01:15
5

Não tenho certeza se existe uma vantagem direta. Eu sou um usuário vi há mais de 20 anos. Eu também sou um usuário screen por mais tempo, e de outros programas que usam vi keys. É natural eu preferir definir o modo "vi" no bash. Mas também trabalho em centenas de servidores no meu trabalho, a maioria está configurada para o modo padrão "emacs". Então eu preciso usar os dois modos. Mas é realmente apenas uma questão de preferência.

    
por 31.01.2012 / 08:18
5

Permite editar coisas na linha de comando usando os modos e operações do vi.

Um exemplo ajudará a tornar isso muito mais claro:

Você digita cp tmp/some_other_long_directory/file1.xt /tmp2/some_other_xtra_long_dir/

mas você recebe um erro - você deve ter digitado file1.txt não file1.xt

Sem esta opção definida, você pressiona a seta para cima e, em seguida, pressiona a seta para a esquerda e repete para ... 35 vezes, até chegar ao .xt e digite o extra %código%. Total de toques de tecla: 37 .

Com esta opção configurada você pode (por exemplo) pressionar seta para cima uma vez, depois Escape para o modo de comando, 0 para ir para o início da linha e então t para chegar ao /xt[return] e, em seguida, você pode digitar xt para o modo de inserção e digitar o t ausente. Isso pode parecer insanamente complicado em alguns aspectos, mas se você for um usuário vim, esses comandos já são bem conhecidos. Total de toques de tecla: 9

    
por 28.11.2013 / 03:44
4

A principal vantagem é a edição modal de sua linha de comando. Se você está familiarizado com o Vim e gosta de sua filosofia, os benefícios devem ser óbvios. Se você tiver experiência com isso, a memória muscular do seu dedo fará com que você edite seus comandos bash em velocidades relâmpago.

NB : Se você não gosta de edição modal, você deve aprender a tirar proveito do (e padrão) modo emacs. Aqui estão alguns atalhos de teclado interessantes que funcionará em qualquer processo com readline , como bash .

    
por 31.01.2012 / 09:12
1

Se você se acostumar com vi , configure-o para o modo vi como seu editor de shell. Essa seria a razão óbvia. O outro é quando o bash não está disponível por padrão em alguns sistemas operacionais (principalmente UNIX como AIX, Solaris), portanto, o recurso de histórico do shell não está disponível, portanto, a maneira de obter os comandos anteriores configurando o editor de shell como vi e Esc , Ctrl + K ou Ctrl + L

    
por 30.10.2013 / 04:20
1

Ele permite que você navegue e edite facilmente a linha de comando usando os atalhos do vim, por exemplo, mova rapidamente para uma palavra certa, exclua uma palavra.

Por atalhos padrão, quando você precisa ir para o final da linha, você precisa Ctrl + e , enquanto que com set -o vi , você apenas toca $ , como no vim.

    
por 09.11.2014 / 05:10
1

Provavelmente atrasado para a festa, mas para mim, usar o modo vi é mais para criar scripts interativos. Por exemplo

for i in 'ls | grep -v gz'
do
    echo $i
    gzip $i
done

um exemplo muito simples do que pode ser bastante complicado ... usando ESC k v coloca você em uma sessão do vi onde você pode modificar o script e, em seguida, :wq e ele é executado.

    
por 05.09.2015 / 06:04

Tags