在eclipse或任何编辑器中自动更新许多文档中的文本

在eclipse或任何编辑器中自动更新许多文档中的文本,eclipse,git,emacs,eclipse-plugin,egit,Eclipse,Git,Emacs,Eclipse Plugin,Egit,假设我有几个文件有一个通用表达式(例如软件版本、作者或函数及其手册)。 我想在一个文件中更改此表达式,其他文件自动更新 在eclipse或任何编辑器中都有这样做的方法吗? 或者有什么软件可以做到这一点 大概是这样的: 事实上,我正在寻找类似代码重构的东西,并且我只需要一个用户 我希望文件立即更新。使用Emacs有很多方法可以做到这一点。一个简单的方法是在Dired中使用Q 有关标准查询替换功能(包括跨多个文件)的信息,请参阅Emacs手册中的节点Query Replace(C-h r g Qu

假设我有几个文件有一个通用表达式(例如软件版本、作者或函数及其手册)。 我想在一个文件中更改此表达式,其他文件自动更新

在eclipse或任何编辑器中都有这样做的方法吗? 或者有什么软件可以做到这一点

大概是这样的:

事实上,我正在寻找类似代码重构的东西,并且我只需要一个用户


我希望文件立即更新。

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

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


还有其他Emacs搜索和替换的可能性。

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

  • 链接文件中的内容
  • 文件的其余内容
最好将这种自动合成留给外部工具,该工具将:

  • 使用正确的值解析模板文件
  • 解析文件并检查模板文件是否存在(或是否将替换其内容)
这可以在git这样的版本控制工具的上下文中实现自动化,git正是针对这种情况而开发的:

签出分支时,git会自动调用您以前在
.gittributes
中声明的“smudge”脚本,以便将其应用于所有要更新的文件。

如果修改模板文件,并再次签出分支,则所有文件都将反映新内容。

使用vim/gvim很容易做到这一点。这项工作:

:set nomore
:n `git ls-files`
:argdo sil! %s;<pattern>;<replace>;g | update
:设置为nomore
:n`git ls文件`
:argdo sil!%sg |更新

不太自动,但仍然

  • Visual Studio中的Ctrl+Shift+H
  • 在记事本++和升华文本中按住Ctrl+Shift+F

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

您可以使用正则表达式进行替换。大多数编辑器允许您在路径中的所有文件上替换基于正则表达式的文本。因此,为了向您展示它是如何工作的,您必须选择一个编辑器并说出字符串是什么。如果只是为了替换,我会推荐记事本+,这取决于你要走多远,它可能是正确的工具。这是一个Linux内核实用程序函数,用于监视对文件所做的更改。然后执行处理程序以响应修改。但是,您的问题会产生其他问题,您没有提到这些问题,例如:有多少人能够更新文件?更新是集中式的还是分布式的?更新应该以多快的速度传播(实时,每次编译一次,每天一次)?事实上,我将是唯一的程序员。在打开其他文件之前对其进行更改是否重要?换句话说,编辑器是否可能在文件打开时立即更新它们,而不是在对其中一个文件进行更改时立即更新它们?哪个文件可以决定哪个版本是正确的?这里有一些特定于Emacs的内容:还有一些您可能会觉得有趣的内容:谢谢。您知道在eclipse中如何使用
egit
?@user1436187不确定egit/jgit是否支持内容过滤器驱动程序()。您必须通过命令行执行
git签出
,然后同步您的Eclipse工作区。我喜欢
rgrep
的组合,对于这类事情,尽管问题肯定是寻找一种更自动化的方法。