使每一行双vim

nav*_*jan 4 vi vim shell

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

file1
file2
file3
.
.
.
filen
Run Code Online (Sandbox Code Playgroud)

我想将其转换为:

echo "file1"
cat file1
echo "file2"
cat file2
.
.
.
.
echo "filen"
cat filen
Run Code Online (Sandbox Code Playgroud)

一种方法是使用for循环并读取原始文件的内容并将修改后的内容写入另一个文件,我这样做并且它有效.是否有任何命令在vim通过:g或任何其他命令中执行相同的操作?

xda*_*azz 8

试试这个:

:%s/.*/echo "\0"\rcat \0/g
Run Code Online (Sandbox Code Playgroud)

说明:

:%s/a/b/g意味着搜索整个文件并替换ab.

.* 意味着匹配一行中的每一件事.

\0 意味着匹配的东西.

\r 意味着新线.

  • @nav_jan:它没有洗碗.这是Emacs要做的. (5认同)