在包含连续行上的字符串的文件中使用Vim:
bear
fox
jackie chan
制作python字符串列表的好方法是可重复的:
['bear', 'fox', 'jackie chan']
在范围内尝试了一系列正则表达式(例如:1,3s/^/'/
,:1,3s/$\n/', /
,然后进行讨厌的手工编辑。
答案 0 :(得分:2)
ggcG change the whole buffer
<C-r>=string(split(@"))<CR> insert a string representation of
the content of the unnamed register
<Esc> leave insert mode
答案 1 :(得分:1)
我选择了一个宏:
qq0i'^[$a',^[
这将该行包装成'...',
您可以选择所有行并将宏应用于:
:normal! @q
然后你可以在第一行之前添加[
,在最后一行之后添加]
并且
vipJ
答案 2 :(得分:1)
您可以使用多个替换和:join
来完成此操作:
:%s/^\s*\zs.*/'&',/|'[,']j|s//[&]/
这将产生:
['bear', 'fox', 'jackie chan',]
我个人喜欢尾随逗号,但您可以使用其他替换或:normal
命令将其删除:
%s/^\s*\zs.*/'&',/|'[,']j|s//[&]/|s/,]$/]
%s/^\s*\zs.*/'&',/|'[,']j|exe "norm! $x"|s//[&]/
如需更多帮助,请参阅:
:h :s
:h \zs
:h :j
:h :norm
:h :exe
:h :bar
:h :range
:h '[
答案 3 :(得分:0)
:s/\(.*\)\n\(.*\)\n\(.*\)/['\1', '\2', '\3']/
答案 4 :(得分:0)
使用加入插件(https://github.com/sk1418/Join),您可以使用分隔符加入行。对于给定的示例,您可以执行以下操作:
:%s/^\|$/'/g|%J ','
然后手动将['
和']
添加到BOL and EOL
或只是
:%J "','"
然后手动将['
和']
添加到BOL
和EOL