用引号引起来
在Eclipse JDT中如何将多行选择转换为String。像下面
从:
xxxx yyyy zzz
到:
"xxxx " + "yyyy " + "zzz"
我尝试了以下模板
"${line_selection}${cursor}"+
但是那样一来,我只会将整个块而不是分别包围在每一行中。如何实现多行处理,例如注释所选块?
解决方案
这可能不是我们要找的答案。我们可以使用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键盘快捷键。
查找/替换正则表达式选项处于打开状态。找:
^(.*)$
用。。。来代替:
"" +
好吧,最后一行会有一个多余的" +",我们必须手动将其删除。
也许这不是意思,但是...
如果我在Eclipse中一行并且输入双引号,则在该行中粘贴多行选择内容(如xyz示例),它将像这样粘贴:
"xxxx\n" + "yyyy\n" + "zzz"
然后,如果我们不打算使用换行符,则只需在" \ n"中选择/替换为""中即可。
我认为启用此功能的选项位于"窗口/首选项"的" Java /编辑器/类型/"下,选中"粘贴到字符串文字时转义文本"旁边的框。 (Eclipse 3.4 Ganymede
)
我会在正则表达式模式下使用"查找/替换" Eclipse:
- 查找:^((?:\ s(?)\ S?)((?:\ s(?![\ r \ n]))))
- 替换为\ 1" \ 2" \ 3 +
将精确保留每个字符串前后的空间或者制表符,并用所需的双引号引起来。 (需要删除最后一个" +")