【问题标题】:Is there a way to copy the contents of a String in Eclipse using a keyboard shortcut or menu item?有没有办法使用键盘快捷键或菜单项在 Eclipse 中复制字符串的内容?
【发布时间】:2016-01-13 17:10:58
【问题描述】:

假设我有这个字符串:

String strName = "aaa" +
+ "bbb" +
+ "ccc" + 
+ "ddd" + 
+ "eee";

假设我有很多这种类型的字符串,比如数万个。但是假设有几倍我不想想碰。

我需要获取这些字符串的内容比选择字符串并复制它更快,但是由于我需要手动确定这些字符串是否正确,因此自动化这个过程需要时间长,容易出错。

想要做的是获取内容:

"aaa" +
+ "bbb" +
+ "ccc" + 
+ "ddd" + 
+ "eee";

然后将它们插入到我的剪贴板中,希望可以使用键盘快捷键或菜单项。格式不断变化,所以我只想复制""; 之间的内容,而无需手动选择。

是否有可以将字符串内容插入剪贴板的键盘快捷键或菜单项?

这是我期望它的工作方式:

String strName =
          ^------ select this, hit keyboard shortcut, contents are copied

   v----------clipboard now has this data:
"aaa" +
+ "bbb" +
+ "ccc" + 
+ "ddd" + 
+ "eee";

假设使用编辑器之外的第三方工具自动执行此过程,并且查找/替换是不允许的。我已经编写了一个程序,但无法使用它。我正在寻找编辑器中的快捷方式或菜单项。

【问题讨论】:

  • 例如,如何将所有数据复制到记事本++中,然后用“”替换所有不需要的内容?
  • 是的,这就是我目前正在做的事情。只是想知道是否有键盘快捷键可以自动复制内容。
  • 你有没有想过运行程序并打印变量值?
  • @lupz 这需要更多时间。它们分布在许多不同的项目中,其中许多需要访问我无法访问的东西,因此程序将无法运行。
  • 我偶然发现了scrapbook feature of eclipse jdt。基本上,您可以在没有调试上下文的情况下输入一些表达式并运行/评估它们。您必须将您感兴趣的字符串文字复制到剪贴簿,选择表达式并检查它(检查有一个键盘快捷键。这里是 [cmd]+[i])

标签: java eclipse keyboard-shortcuts


【解决方案1】:

(显然很大程度上取决于你想要做什么的细节,你没有解释。)

我发现对于那些需要一些自动化(“数万”项)但又需要保留一些人类眼球(“我需要手动确定...") 正则表达式通常很有帮助。 Eclipse 的“查找/替换”(Ctrl+F) 对话框可帮助您查找属于特定模式的匹配项,然后您仍然可以选择更改它(Replace/FindFind (不替换))。 Eclips 对正则表达式没有太多帮助,但您可以查看Javadoc for Pattern 以获得相当详尽的联机帮助页。或者查看各种教程(谷歌),但请注意有不同的版本,您需要 Java 中使用的版本。

如果您的字符串没有可以使用的好模式,那么可能有帮助的方法是用代码中未使用(很多)的某些字符标记每个正或负行的第一个字符,例如~#。然后,您可以轻松地将这些行与正则表达式匹配。例如,一旦标记了这些行,您可以删除所有匹配(或不匹配)该起始模式的行,将它们替换为空字符串。

复制您的文件或仅将您感兴趣的行提取到一个新文件中,然后处理这些副本,这样您就不会弄乱您的源代码文件,这也可能会有所帮助 - 再次取决于你需要做什么。

当然还有其他可用的文本编辑器也可以处理(不同方言)正则表达式,例如 Notepad++Notetab(Windows 环境) - 有时方言中的细微差别很有用,所以我在需要编辑器来做一些 Eclipse 不允许我做的事情。

【讨论】:

  • 这可能是对实际问题的唯一有用答案,但我觉得有必要指出programmers.stackexchange.com/q/223634/187751
  • 谢谢你,fr13d。我已经完成了你建议的一切,还有更多。我不允许自动化这个过程,它必须手动完成。一个简单的键盘快捷键或菜单项将有助于减轻我的痛苦。 =p
  • :-) 对,@E-Riz。如果你只有一把锤子,一切看起来都像钉子。
  • 对不起@MarkBuffalo。关于什么被认为是自动化,什么不是(直升机监督员?),您似乎确实对您有一些糟糕的限制。 Ctrl+Shitf+L 向您展示了所有标准快捷方式(我猜您知道)。你可以想象添加你自己的(我从来没有),从教程中我怀疑你可以让他们做比内置的更多的事情。你的要求似乎相当深奥,我需要做一些更标准的事情(我的意见)也没有得到照顾。为 Eclipse 写一个插件?? (可能也会被视为自动化......)
  • 我认为写一个插件会很棒,但目前没有时间专门做这个。
【解决方案2】:

将表达式从第一个"复制到最后一个,并将其作为输入传递给以下程序:

perl -npe 's/^([+] )?"(.*)"( +[+] *|;)[\r\n]*$/$2/g';

请注意,您可能需要在引号末尾添加一个(或两个)空行。

编辑:这不会取消转义序列。

【讨论】:

  • “将其作为输入传递给以下程序”是什么意思? Eclipse 中是否有我不知道的 perl 命令?还是您希望我运行 perl?
  • 啊,所以你在 Windows 上。对不起。但是你可以编写一个 Java 程序来为你做这件事。
  • 是的,我可以写一个为我做的,同意。我真正想要的是一个键盘快捷键或菜单项,它允许我通过选择字符串名称来获取内容。
  • 只需将您的名字悬停在字段或变量名称上即可。
  • 如果它有效,那就太好了。不幸的是,事实并非如此。它只显示字符串的名称和包路径。不存在其他内容。那么,我将如何启用您的建议?
猜你喜欢
  • 1970-01-01
  • 2012-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-04
  • 2021-07-19
  • 2020-03-04
  • 2011-12-16
相关资源
最近更新 更多