用引号括起来

时间:2008-09-23 14:06:40

标签: eclipse

Eclipse JDT如何将多行选择转换为String。如下所示

自:

xxxx
yyyy
zzz

要:

"xxxx " +
"yyyy " +
"zzz"

我尝试了以下模板

"${line_selection}${cursor}"+

但是这样我只能将整个区块分别包围而不是每条线。如何实现多线处理,例如评论所选块?

4 个答案:

答案 0 :(得分:88)

也许这不是你的意思,但......

如果我在Eclipse中排队并输入双引号,那么在粘贴多线选择(如xyz示例)中它会粘贴出来:

"xxxx\n" +   
"yyyy\n" +  
"zzz"

如果您不打算换行,那么您可以在"\n"""的选择中找到/替换。

我认为启用此功能的选项位于Window/PreferencesJava/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键盘快捷键。