Suppose we can do ``` :g/ /s/C/I/g ``` but we want to do this within a vimscript function? Actually, this works ``` function ToDeg() g/ /s/Cm/i/g g/ /s/Dm/ii/g g/ /s/Em/iii/g g/ /s/Fm/iv/g g/ /s/Gm/v/g g/ /s/Am/vi/g g/ /s/Bm/vii/g g/ /s/C/I/g g/ /s/D/II/g g/ /s/E/III/g g/ /s/F/IV/g g/ /s/G/V/g g/ /s/A/VI/g g/ /s/B/VII/g endfunction nnoremap \ch :call ToDeg() ``` The idea is that lines with lyrics and chords, if they contain a consecutive run of four or more spaces, are chords not lyrics, so this changes chords, assuming a key of C, to their respective degrees. This makes it easier to then transpose into a different key.