Можно ли в vim заменить 1-10
на 1,2,3,4,5,6,7,8,9,10
?
И я не говорю :s:1-10:1,23,4,5,6,7,8,9,10
Я имею в виду как команда, которая будет смотреть на диапазон и заменять его соответствующим образом.
Можно ли в vim заменить 1-10
на 1,2,3,4,5,6,7,8,9,10
?
И я не говорю :s:1-10:1,23,4,5,6,7,8,9,10
Я имею в виду как команда, которая будет смотреть на диапазон и заменять его соответствующим образом.
Это будет делать то, что вы хотите:
:%s/\(\d\+\)-\(\d\+\)/\=join(range(submatch(1),submatch(2)),',')/g
Конечно, вы можете поместить его в пользовательскую команду:
:command! -nargs=0 RangeReplace %s/\(\d\+\)-\(\d\+\)/\=join(range(submatch(1),submatch(2)),',')/g