Emacs регулярное выражение для увеличения / уменьшения индексов массива - PullRequest
4 голосов
/ 12 декабря 2011

Можно ли использовать регулярное выражение для изменения индекса массива в emacs?

например, для некоторого изменения кода C:

int my_array[4];
my_array[0] = 1;
my_array[1] = 2;
my_array[2] = 3;

на:

int my_array[4];
my_array[1] = 1;
my_array[2] = 2;
my_array[3] = 3;

своего рода замена [i] операцией [i+1]?

Ответы [ 2 ]

11 голосов
/ 12 декабря 2011

Что-то подобное?

   M-x query-replace-regexp my_array\[\([0-9]+\)\] RET my_array[\,(1+ \#1)]

\, в строке замены можно заменить любое выражение lisp.

(последнее редактирование: использование \#1 вместо (string-to-int \1))

1 голос
/ 12 мая 2015

приращение:

M-x query-replace-regexp \[\([0-9]+\)\] RET [\,(1+ \#1)]

декремент:

M-x query-replace-regexp \[\([0-9]+\)\] RET [\,(1- \#1)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...