modo visual no vi para remover char no final de várias linhas

1
builder.append("sss");
builder.append("aaaaaaaaa");

Eu gostaria de remover o; no fim. Eu posso fazer isso usando vários scripts no sed ou substituir tudo no vim.

Mas gostaria de saber como usar o modo visual.

Eu sei adicionar na frente ou no verso vá para o modo visual, j, Shift + i, adicione no começo e esc similarmente Shift + $ para o final.

Mas, quando tentei remover usando j, Shift + $, Shift + a, backspace e esc ele não funciona, eu recebo o seguinte:

   builder.append("sss")
   builder.append("aaaaaaaaa");)

O que estou fazendo de errado?

    
por would_like_to_be_anon 04.12.2014 / 21:32

2 respostas

3

Parece que a maneira mais fácil de fazer isso para várias linhas é marcar o bloco no modo visual e, em seguida:

:'<,'>s/;$//

Observe que '<,'> significa "desde o início do bloco visual até o final" e é adicionado automaticamente quando você pressiona : enquanto está no modo visual.

    
por 04.12.2014 / 21:41
0

Posicione o cursor sobre o ponto-e-vírgula e use x para excluí-lo.

(Eu suponho que você esteja se referindo ao modo visual do vi (diferente de seu modo ex), e não ao modo VISUAL do Vim.)

Se você realmente quiser fazer isso com várias linhas de uma só vez, precisará recorrer a um comando de dois-pontos. Se você estiver usando o Vim, então a resposta do @Greg Hewgill é a certa para você. Se você estiver usando vi, terá que marcar a primeira linha com ma e a última com mb e, em seguida, processar todas elas com :'a,'bs/;$// .

    
por 05.12.2014 / 01:29

Tags