Descobri:
Mova o cursor para a linha que deseja modificar e faça o seguinte:
.s / /: / g
O '.' na frente do comando substituto diz ao vi (m) que você quer apenas modificar a linha atual.
Ref: link
Existe uma maneira no vi (m) para direcionar uma linha específica em um arquivo para uma substituição de string?
Preciso adicionar frequentemente impressões digitais SSL SHA dos servidores Web ao meu Mercurial .hgrc. Posso pegar a assinatura necessária do Chrome facilmente clicando duas vezes no cadeado e observando os detalhes do certificado, mas recebo os sig com delimitadores de espaço em vez dos delimitadores de dois pontos desejados pelo Mercurial
06 32 1C C5 8A 49 77 85 C5 89 6F 67 75 96 F0 43 77 96 EB 90
Exemplo do Google Code .
Existe uma maneira de:
Segmente apenas essa linha com um
: s / /: / g
Salve o arquivo
Agora eu posso colar a impressão digital em um novo arquivo, fazer a substituição e puxá-la para o meu .hgrc com um : r filename , mas isso é um passo extra que eu não me importaria pulando.
Descobri:
Mova o cursor para a linha que deseja modificar e faça o seguinte:
.s / /: / g
O '.' na frente do comando substituto diz ao vi (m) que você quer apenas modificar a linha atual.
Ref: link
Se você quiser inseri-lo após a linha N:
:N put =substitute(@+, ' ', '', 'g')
Fim do arquivo: N = $; início do arquivo: N = 0. @ + é o registrador da área de transferência (quando a GUI está em execução).
Simplesmente :s/ /:/g
vai fazer bem.
O comando :substitute
funciona apenas na linha atual por padrão.
O modificador global /g
significa substituir todas as correspondências no intervalo especificado, não o arquivo inteiro.
você está querendo fazer isso?
echo "06 32 1C C5 8A 49 77 85 C5 89 6F 67 75 96 F0 43 77 96 EB 90" >> <filename>