Vim复制并连接线条

时间:2013-05-17 08:27:32

标签: vim range lines

我有一个看起来像这样的文件:

G:\some_folder
    file1.avi
    file2.wav
E:\some_folder2
    fileABC.avi
    fileDEF.wav

我想将文件转移到:

G:\some_folder
G:\some_folder  file1.avi
G:\some_folder  file2.wav
E:\some_folder2
E:\some_folder2 fileABC.avi
E:\some_folder2 fileDEF.wav

所以换句话说,这可能会像这样: 查找^[A-Z]:复制整行并在开头添加到下一行,直到找到^[A-Z]:

可以在VIM中这样做吗?如果是的话,如何。

谢谢你 拉狄克

1 个答案:

答案 0 :(得分:7)

我会用:global遍历所有行; Vim会将光标定位在每一行的开头。根据它的行类型,我要么拉出文件夹路径,要么将其粘贴在前面:

:%g/^/execute 'normal!' getline('.') =~ '^\S' ? 'y$' : 'P'