我有一堆表格
的文字grid = par1.grid;
M3d = par1.M3d;
alpha = par1.alpha;
gamma = par1.gamma;
我希望转换每一行,所以等号右边的东西现在在等号的左边,反之亦然。所以上面的文字如下所示。
par1.grid = grid;
par1.M3d = M3d;
par1.alpha = alpha;
par1.gamma = gamma;
在emacs中有一种简单的方法吗?我已经想出了如何转换单词,但这看起来并不像我正在寻找的那样。
编辑:我处于matlab模式。
答案 0 :(得分:2)
将C-M-%
(a.k.a。M-x
query-replace-regexp
)与正则表达式\(.*\) = \(.*\);
和替换\2 = \1;
一起使用。
答案 1 :(得分:1)
修改=
的语法条目,使其不是符号构成符号或单词构成符号。假设.
是一个符号consiteuent或一个单词成分而;
不是,如在Emacs-Lisp模式中,你可以使用C-M-t
(转置性别)与之前的点(或之后)=
。
例如,在Emacs-Lisp模式下,在评估此内容后,在C-M-t
之前点=
尝试:
(modify-syntax-entry ?= ".")
在任何模式下(假设至少那些字母具有单词构成语法):
(modify-syntax-entry ?= ".") ; `=' is punctuation
(modify-syntax-entry ?\; ".") ; `;' is punctuation
(modify-syntax-entry ?. "_") ; `.' is a symbol char
答案 2 :(得分:1)
答案取决于您编辑的主要模式:如果您的主要模式使用SMIE进行缩进,那么C-M-t
(带有=符号的点)应该可以解决问题。