2014-12-02 37 views
1

我该如何设置一个宏来跨多个文件工作?emacs跨文件键盘宏

例如,假设我有多个角度应用程序,并且我想为每个模块添加注射剂?

所以对于每一个文件,以便

./apps/app-name/index.js 

我想找到的

angular.module('module-name', ['list', 'of', 'injectables']); 

angular.module('other-module-name', [ 
    'list', 
    'of', 
    'injectables']); 

第一个实例,并添加另一个项目上的结束名单。

回答

4

这其实很容易

我会在一个单一的窗口框架启动和运行的Mxfind-name-diredRET生成所有index.js文件的dired上市(如果我的理解是正确的)。或者,也许你会用find-grep-dired列出所有包含angular.module(的文件。或者如果单个比赛更合适,则可以使用rgrep。无论生成需要链接到感兴趣的文件的链接是什么。

然后我将开始录制宏(< F3>)与点在第一这些文件中,首先使用ø(从dired; RET从grep的),以在其他窗口中打开该文件。

然后,您将以足够通用的方式执行您的编辑,这些操作将适用于所有正在编辑的文件。

最后使用C-XØ返回dired上市,然后C-N移动到下一个文件,于是你会停止录制宏(< F4>)。

创建键盘宏以处理分割到多个缓冲区的数据的“随便”轻松操作是真正将功能强大的功能带回家的那些功能之一。第一次发生在我身上,我可以实际上是是一个巨大的“啊哈!”这是我的时刻,从那以后,我一直是键盘宏的忠实粉丝。

+0

这是一个很好的答案。 – 2017-11-30 14:23:13