收集第 1 行中的字符和第 2 行中的字符

收集第 1 行中的字符和第 2 行中的字符

我有两行编辑器,如下所示

3  àáâ
4  aaa

基于这两行,我想得到下面的结果

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

有任何想法吗?

答案1

如果您有重复性任务要做,您可以录制宏。

例如这里,

qajxkphi'Escla' => 'Escla',Enter Escq

说明:

  • qa:开始录制宏a
  • jxkp:向下一行,擦除复制一个字符,向上,打印
  • hi'Esc:向左插入一个',返回正常模式
  • la' => ',Esc:向右走,追加到当前字符后' => ',返回正常模式
  • la'EnterEsc :向右,追加',和换行,然后返回正常模式。
  • q: 停止录音

要使用宏(并确认其有效),请将自己置于第一个字符上并按@a。结果是:

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

你在第二行。按2@a两次执行宏,得到:

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

答案2

将以下 3 个map-ping 放入您的文件中~/.exrc,然后将文件加载到vi|vim|gvim您想要编辑的位置。将光标移到要进行转换的行上的任意位置,然后只需按模式Q下的键即可完成其余操作。注意:它们不是字面意思,而是通过按以下组合键将它们插入到文件中:ESCvirecursive macro^M<Ctrl><V> <Ctrl><M>

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

相关内容