emacs变量名重构

前言

以前会使用emacs写代码,用IDE做重构和断点测试,
最近发现emacs也可以做一些重构,还可以高亮同样的变量.

重构本文件中的变量名

使用 iedit-mode (自己绑定在 C-;),来高亮所有的变量,
编辑高亮部分时即可更改变量的内容.
不编辑高亮部分,则高亮部分可以仅仅作为提示使用.
该模式需要退出
缺点:由于是基于两头加 "\b" 一类的字符串匹配,注释中的内容会被改变.

更改一个范围内的变量名

  1. 先选定一个范围 (搭配 C-c C-nC-M n 在尖括号或圆括号之间跳转)
  2. 使用 narrow-to-region (helm下绑定在 M-m n r) 限定影响范围在该范围
  3. 使用 iedit-mode 编辑
  4. 使用 widen (helm下绑定在 M-m n w)恢复影响范围

整个项目的变量名重构

  1. 先使用 helm-projectile-ag 之类的搜索整个项目中的同样的变量
    1. 此时会有部分匹配的字符串被匹配有没有关系
  2. 在搜索结果中使用 helm-ag-edit (C-c C-e)进入编辑模式
    1. 当然也可以使用occur-mode等,这方面插件很多
  3. 使用 iedit-mode 编辑变量名
    1. iedit-mode可以避免上面被部分匹配的变量被修改
  4. 根据提示使用 C-c C-c 保存或使用 C-c C-k 放弃