0

I have a transcription file that looks like this:

[09:46] question

[10:22] answer

[10:25] question

[10:26] answer

[10:27] question

and so on...

Now I would like to add an identifier right after the time like this:

[09:46] I1: question

[10:22] A1: answer

[10:25] I2: question

[10:26] A2: answer

[10:27] I3: question

and so on...

I know I can number each line like this:

:let i = 1 | g/]/s//\=printf("] %02d ", i)/ | let i = i+1

but how could I alternate the I and A?

2

Something like the following should work:

let ind=['I', 'A']
let i = 1
let j = 1
g/]/s##\=printf("] %s%02d ", ind[i%len(ind)], j)#|let i+=1|let j=(i%2==1?j+1:j)

as mentioned by @JürgenKrämer you can get rid of the second variable j and use this:

let ind=['I', 'A']
let i = 0
g/]/s##\=printf("] %s%02d ", ind[i%len(ind)], i / len(ind) + 1)#|let i+=1
3
  • 1
    thanks, it works like a charm! just one small thing: in order for the sequence to start with the 'I' the ind has to be like this: ind=['A', 'I'] Jul 6 at 8:54
  • 2
    You can get rid of variable j if you start to count from zero and replace j with i / len(ind) + 1 inside the call to printf(): let ind=['I', 'A'] let i = 0 g/]/s##\=printf("] %s%02d ", ind[i%len(ind)], i / len(ind) + 1)#|let i+=1 Jul 6 at 13:36
  • thanks @JürgenKrämer cool improvement, let me amend the answer Jul 6 at 14:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.