Мое регулярное выражение довольно ржавое.Как можно использовать vim для изменения точности десятичного числа.
Например:
Изменение 30.2223221 8188.2121213212 на 30.22 8188.21
Использование только VimL:
:%s/\d\+\.\d\+/\=printf('%.2f',str2float(submatch(0)))/g
Вероятно, это возможно при использовании внутреннего поиска / замены vim, но я бы использовал "perldo":
:perldo s/(\d+\.\d+)/sprintf "%.2f", $1/eg
Если вы хотите просто усечь последнюю цифру вместо округления,
:%s/(\d+\.\d\d)\d+/\1/g
На основании предыдущих ответов, используя VimL, для отрицательных чисел и экспоненциальной записи:
:%s/\c\v[-]=\d+\.\d+(e[+-]\d+)=/\=printf('%.2f',str2float(submatch(0)))/g