No Vim: gg0<ctrl-v>GI;<Esc>
Em um arquivo de texto, preciso comentar todas as linhas adicionando um ";" como primeiro caractere de cada linha. O que é uma boa maneira de fazer isso? Pensei no modo de bloqueio visual do Vim, mas não consegui encontrar uma opção "selecionar tudo" e marcar várias centenas de linhas manualmente também não é ótimo ;-) Alguma idéia? Eu tenho nano, vi e vim na mão, eu prefiro um desses para esta tarefa.
No Vim, você também pode fazer a substituição global no início de todas as linhas:
:%s/^/;/
Para uma tarefa simples como essa, você pode usar sed
ou perl
. Para uma pegada pequena, use sed
para essa tarefa simples:
sed -i.old -e 's/^/;/' file
Isso preserva uma cópia do arquivo original como "* .old" e adiciona um ";" no início de cada linha.
No caso em que seu sed
não seja uma versão GNU (como é o caso de muitas variantes Unix), é provável que você não tenha a opção inplace ( -i
). Simplesmente redirecione para um novo arquivo de saída ou use Perl como perl -pi.old -e 's/^/;/' file
Eu adicionaria a resposta do jw013 alterando a substituição para
:%s/^[^;]/;:%s/^[^;]/;%pre%/
/
Isso pode ser reexecutado quantas vezes você desejar e não adicionará ponto e vírgula indefinidamente ao início das linhas que já o possuem no começo.
Ele também pode ser usado com sed ou perl com o sinal de cólon e porcentagem removido.
Ele substitui em todas as linhas (%) todas as linhas que começam com algo diferente de um ponto-e-vírgula para iniciar com um ponto-e-vírgula e o caractere com o qual ele começou originalmente (para mantê-lo no arquivo).
Ambos os comandos (o meu e o do jw013) devem ser feitos no modo de comando, que é o modo de início padrão do vi / vim e pode ser acessado com a tecla quando em Inserir ou substituir modos.
Você pode fazer isso usando somente o editor vi -
:%s/^/;/g