Emacs regexp增加/减少数组索引

时间:2011-12-12 09:28:30

标签: c arrays emacs indexing

是否可以使用正则表达式来改变emacs中的数组索引?

e.g。对于某些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 个答案:

答案 0 :(得分:11)

那样的东西?

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

\,替换字符串可以替换为任何lisp表达式。

(上次修改:使用\#1代替(string-to-int \1)

答案 1 :(得分:1)

增量:

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

递减:

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