Vim 在vi中,如何从缓冲字中提取文件名部分?
例如,在vi中,我想更改一行 从Vim 在vi中,如何从缓冲字中提取文件名部分?,vim,filenames,vi,Vim,Filenames,Vi,例如,在vi中,我想更改一行 从 \cp ~/bkup/Evac_BUSYBOX_ e2fsprogs/old_e2fsprogs/blkid/blkid.h 到 我有很多这样的行,只是结尾有不同的文件名。 我想使用类似于使用标记从“a到”的块的命令 :'a,.s/\\cp \(.*\) \(.*\)/\\cp \1?? \2 ???应为“缓冲字\2的文件名部分” 是否有表达式?如\2:filename?我知道csh中有这样的函数,但我想在vi中使用类似的函数。 谢谢。你可以试试这个:s c
\cp ~/bkup/Evac_BUSYBOX_ e2fsprogs/old_e2fsprogs/blkid/blkid.h
到
我有很多这样的行,只是结尾有不同的文件名。
我想使用类似于使用标记从“a到”的块的命令
:'a,.s/\\cp \(.*\) \(.*\)/\\cp \1?? \2
???应为“缓冲字\2的文件名部分”
是否有表达式?如\2:filename?我知道csh中有这样的函数,但我想在vi中使用类似的函数。
谢谢。你可以试试这个:s cmd:
事实上,在正常模式下,您可以在该行执行此操作:
$F/yg_gEp
如果要多次录制,请将其录制为宏或使用:normal cmd
s#\v(BOX_)(.*/([^/]*))*#\1/\3\2#
$F/yg_gEp