Могу ли я найти и заменить математическим выражением в Vim? - PullRequest
0 голосов
/ 12 января 2019

У меня есть следующая строка:

set_property LOC DSP48E2_X0Y0 [get_cells{name[0].dut/mm1/dsp_chain[0].dsp_inst}];

Я хочу заменить DSP48E2_X0Y{number} на DSP48E2_X0Y{number+5} Я проследил за потоком переполнения стека и попытался использовать команду awk:

echo "set_property LOC DSP48E2_X0Y0   [get_cells {name[0].dut/mm1/dsp_chain[0].dsp_inst}];" | awk `{ printf "%s %s %s_X%dY%d", $1, $2, $3, $4, $5+5}`

но я получаю ошибки:

bad math expression: operand expected at `,'

1 Ответ

0 голосов
/ 12 января 2019

Чтобы ответить на вопрос в заголовке: Да, просто начните замену с \=.

В вашем случае

:s/DSP48E2_X0Y\zs\d\+/\=submatch(0)+5/

сделает это.

(Понятия не имею, о чем весь этот аукционный материал.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...