собирать символ из строки 1 с символом из строки 2

У меня две строки в редакторе vim, как вы можете видеть ниже

3 àáâ 4 aaa 

Основываясь на этих двух строках, я хотел бы получить результат ниже

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

Есть идеи?

Если у вас есть повторяющиеся задачи, вы можете записать макрос.

Например, здесь,

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

Пояснения:

  • qa : начать запись макроса a
  • jxkp : сходите на одну строку, стирайте-копируйте один символ, jxkp , печатайте его
  • hi' Esc : идти влево, вставить один ' , вернуться в нормальный режим
  • la' => ', Esc : повернуть направо, добавить после текущего символа ' => ' , вернуться в нормальный режим
  • la' Enter Esc : перейдите вправо, добавьте ', и новую строку, и вернитесь в обычный режим.
  • q : остановить запись

Чтобы использовать макрос (и убедитесь, что он работает), поместите себя на первый символ и нажмите @a . Результат:

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

и вы находитесь во второй строке. Нажмите 2@a чтобы выполнить макрос дважды и получите:

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

Поместите нижеуказанные 3-звездочные map в файл ~/.exrc а затем загрузите файл в vi|vim|gvim вы хотите отредактировать. Подведите курсор в любом месте строки, где вы хотите преобразование, и просто нажмите клавишу Q в режиме ESC для vi и этот recursive macro сделает все остальное. NB: the ^M не должны быть буквально, и они вставляются в файл, нажимая следующий keycombo: <Ctrl><V> <Ctrl><M>

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