4

假设我有几个具有共同表达的文件(例如软件版本、作者或功能及其手册)。我想在一个文件中更改此表达式,其他文件会自动更新。

有没有办法在 Eclipse 或任何编辑器中做到这一点?或者有什么软件可以做到这一点?

像这样的东西:

http://wordprocessing.about.com/od/wordquicktips/qt/linktext.htm

事实上,我正在寻找像代码重构这样的东西,我只需要一个用户。

我希望文件立即更新。

4

4 回答 4

2

使用 Emacs 有很多方法可以做到这一点。一种简单的方法是Q在 Dired 中使用。

有关标准查询替换功能的信息,包括跨多个文件,请参阅 Emacs 手册的节点Query Replace( C-h r g Query Replace)。

以下是其他 Emacs 搜索和替换的可能性。

于 2013-10-27T04:36:02.420 回答
1

这在大多数编辑器中都找不到:
您在 WordProcessing 中描述的功能包括在文本文件中留下一个“包含链接”,这将使您的文件自动组成:

  • 链接文件的内容
  • 文件的其余内容

最好将这种自动组合留给外部工具,该工具将:

  • 解析具有正确值的模板文件
  • 解析您的文件并检查模板文件是否存在(或将替换其内容)

这可以在 git 之类的版本控制工具的上下文中实现自动化,它具有专门为这种场景制作的内容过滤器驱动程序:

弄脏

当您签出一个分支时,git 会自动调用您之前在 a.gitattributes中声明的“涂抹”脚本,以便将其应用于您要更新的所有文件。
如果您修改模板文件并再次签出您的分支,您的所有文件都将反映新内容。

于 2013-10-29T07:40:55.570 回答
0

不是很自动,但仍然

  • Ctrl+Shift+H在 Visual Studio 中
  • Ctrl+Shift+F在 Notepad++ 和 Sublime Text 中

允许替换目录中的所有文件,并能够按文件类型过滤并可选择使用正则表达式。

于 2013-11-05T02:30:32.413 回答
0

This kind of thing is easy to do with vim/gvim. This works:

:set nomore
:n `git ls-files`
:argdo sil! %s;<pattern>;<replace>;g | update
于 2013-11-02T18:22:32.763 回答