Eclipse JDT如何将多行选择转换为String。如下所示
自:
xxxx
yyyy
zzz
要:
"xxxx " +
"yyyy " +
"zzz"
我尝试了以下模板
"${line_selection}${cursor}"+
但是这样我只能将整个区块分别包围而不是每条线。如何实现多线处理,例如评论所选块?
答案 0 :(得分:88)
也许这不是你的意思,但......
如果我在Eclipse中排队并输入双引号,那么在粘贴多线选择(如xyz示例)中它会粘贴出来:
"xxxx\n" +
"yyyy\n" +
"zzz"
如果您不打算换行,那么您可以在"\n"
到""
的选择中找到/替换。
我认为启用此功能的选项位于Window/Preferences
,Java/Editor/Typing/
下,选中"Escape text when pasting into a string literal"
旁边的复选框。 (Eclipse 3.4 Ganymede
)
答案 1 :(得分:4)
启用正则表达式选项查找/替换。发现:
^(.*)$
替换为:
"$1" +
好吧,最后一行会有余量+
,你必须手动删除它。
答案 2 :(得分:3)
我会在regexp模式下使用Find / Replace eclipse:
查找
^((?:\ S() \ S)((:????!\ S([\ r \ n])的))
替换为
\ 1“\ 2”\ 3 +
将完全保留在每个字符串之前和之后的任何空格或标签,并用所需的双引号括起来。 (最后'+'需要删除)
答案 3 :(得分:2)
这可能不是您正在寻找的答案。您可以使用sed流编辑器轻松实现您的要求。通过下载像cygwin这样的工具包,可以在所有Unix版本和Windows上使用它。在Unix shell命令行上运行命令
sed 's/^/"/;s/$/"+/'
并粘贴您要转换的文字。在其输出中,您将获得转换后的文本。传递给sed的参数用一个引号替换一行(^)的开头,并用引号和加号替换每行($)的结尾。
如果要转换的文本很大,您可能希望通过文件重定向sed的输入和输出。在这种情况下运行像
sed 's/^/"/;s/$/"+/' <inputfile >outputfile
在Windows上,您还可以使用Outwit工具套件的winclip命令直接更改剪贴板中的内容。只需运行
winclip -p | sed 's/^/"/;s/$/"+/' | winclip -c
上面的命令会将剪贴板的内容粘贴到sed中,然后将结果粘贴到剪贴板中。
最后,如果您经常使用此命令,则将其放入shell脚本文件中是有意义的,这样您就可以轻松运行它。然后,您甚至可以为其分配Eclipse键盘快捷键。