用引号括起来

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

从:

xxxx yyyy zzz 

至:

 "xxxx " + "yyyy " + "zzz" 

我尝试了以下模板

 "${line_selection}${cursor}"+ 

但这样我只能得到整个块不包围每行分开。 我怎样才能实现多线处理像评论选定的块?

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

如果我在Eclipse中的一行,并input双引号,然后在里面粘贴多行select(如你的xyz的例子),它会像这样粘贴:

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

那么你可以find/replace为"\n""" ,如果你不打算换行符。

我认为启用它的选项是在Window/Preferences ,在Java/Editor/Typing/ ,勾选"Escape text when pasting into a string literal"旁边的checkbox。 ( Eclipse 3.4 Ganymede

查找/replace与正则expression式选项打开。 找:

 ^(.*)$ 

用。。。来代替:

 "$1" + 

那么,最后一行将有一个盈余+ ,你必须手动删除它。

我会用正则expression式模式来查找/replaceeclipse:

  • 找:

    ^((?:\ s(?) \ S?)((?:\ s(?![\ r \ n]))

  • 用。。。来代替

    \ 1“\ 2”\ 3 +

在每个string之前和之后将保留任何空格或制表符,并用所需的双引号括住它们。 (最后'+'需要被删除)

这可能不是你正在寻找的答案。 您可以使用sedstream编辑器轻松实现您要求的内容。 这在Unix的所有版本上都可用,在Windows上也可以通过下载一个像cygwin这样的工具包来实现。 在Unix shell命令行上运行该命令

 sed 's/^/"/;s/$/"+/' 

并粘贴你想要转换的文本。 在其输出中,您将获得转换的文本。 传递给sed的参数表示用行情replace行(^)的开头,并用行情和加号replace每行的结尾($)。

如果你想要转换的文本很大,你可能想通过文件redirectsed的input和输出。 在这种情况下运行类似

  sed 's/^/"/;s/$/"+/' <inputfile >outputfile 

在Windows上,您还可以使用Outwit工具套件的winclip命令直接更改剪贴板中的内容。 只需运行

 winclip -p | sed 's/^/"/;s/$/"+/' | winclip -c 

上述命令将剪贴板的内容粘贴到sed中,并将结果粘贴回剪贴板。

最后,如果你经常使用这个命令,把它放到一个shell脚本文件中是很有意义的,所以你可以很容易地运行它。 您甚至可以为其分配Eclipse键盘快捷键。