recolhe o caractere da linha1 com o caractere da linha 2

3

Eu tenho duas linhas no editor como você pode ver abaixo

3  àáâ
4  aaa

Com base nessas duas linhas, gostaria de obter o resultado abaixo

'à' => 'a',
'á' => 'a',
'â' => 'a',

Alguma idéia?

    
por smarber 29.03.2017 / 14:38

2 respostas

5

Se você tiver tarefas repetitivas para fazer, poderá gravar uma macro.

Por exemplo, aqui,

qajxkphi' Esc la' => ' Esc la', Digite Esc q

Explicações:

  • qa : iniciar a gravação da macro a
  • jxkp : descer uma linha, apagar um caractere, subir, imprimi-lo
  • hi' Esc : vá para a esquerda, insira um ' , volte ao modo normal
  • la' => ', Esc : vá para a direita, anexe depois do caractere atual ' => ' , volte ao modo normal
  • la' Digite Esc : vá para a direita, acrescente ', e uma nova linha e volte ao modo normal.
  • q : parar de gravar

Para usar a macro (e confirmar que ela funciona), coloque-se no primeiro caractere e pressione @a . O resultado é:

'à' => 'a',
áâ
aa

e você está na segunda linha. Pressione 2@a para executar a macro duas vezes e obter:

'à' => 'a',
'á' => 'a',
'â' => 'a',
    
por 29.03.2017 / 14:54
2

Coloque os 3 map -p% abaixo no arquivo ~/.exrc e, em seguida, carregue o arquivo em vi|vim|gvim que você deseja editar. Coloque o cursor em qualquer lugar na linha onde deseja a transformação e simplesmente pressione a tecla Q no modo ESC de vi e esse recursive macro fará o resto. N.B .: os ^M não devem ser literalmente e são inseridos no arquivo pressionando o seguinte keycombo: <Ctrl><V> <Ctrl><M>

:map q :s/./&\r/^M
:map v :s/\(.\) \(.\)/'' => '',/^M
:map Q :/^^M-q+q-dd-P-Jv+Q
    
por 29.03.2017 / 16:13

Tags