在Emacs中,是否可以使用正则表达式来修改数组索引? 例如,对于一些C代码,需要进行如下更改: int my_array[4]; my_array[0] = 1; my_array[1] = 2; my_array[2] = 3; to: int my_array[4]; my_array[1] = 1; my_array[2] = 2; my_array[3] = 3; 一种将[i]替换为[i+1]的操作?
这样行吗? M-x query-replace-regexp my_array\[\([0-9]+\)\] RET my_array[\,(1+ \#1)] 替换字符串中的 \, 可以被任何 Lisp 表达式所替代。 (最后一次编辑:使用 \#1 替换 (string-to-int \1))
递增:M-x query-replace-regexp \[\([0-9]+\)\] RET [\,(1+ \#1)] 减量:M-x query-replace-regexp \[\([0-9]+\)\] RET [\,(1- \#1)]
\#1
代替(string-to-int \1)
。 - SeanM-x query-replace-regexp \[\([0-9]+\)\] RET [\,(1+ \#1)]
已经可以使用!而减量函数是1-
。 - Rémi