vi/vim,如何将多行写入新文件

vi/vim,如何将多行写入新文件

在活动的 Vim 缓冲区中,如何在不先关闭当前缓冲区的情况下将特定范围的行写入新文件?

答案1

你可以做

:100,200w filename

当然100,200是你要写的行数范围。

答案2

最一般的:

  1. 将光标移动到要写入的组的第一行。击中ma连续。这就是“设置名为‘a’的标记”。

  2. 将光标移动到该组的最后一行,点击“m”和“b”。

  3. 切换到命令模式,按:按顺序执行,:'a,'b w filename然后按回车键。

这适用于 vi、nvi 和 vim。

另一种方法适用于更现代的 vim:

  1. 将光标放在要写出的行组的第一行上。点击V,表示“开始视觉行块”。

  2. 将光标移动到行组的底部。 Vim 将以反白方式突出显示每一行。

  3. 写出。点击:进入命令行模式。这将在屏幕底部给您一个提示,如下所示::'<,'> 这意味着从视觉块的开始到结束。输入w文件名并按回车键。

您可以根据需要将单行添加到文件末尾,方法是将光标放在要写出的行上,然后键入::.w >> filename并按回车键。

“写入一组行”命令也适用于“>> 文件名”,而不仅仅是“文件名”。 “>>”导致 vi 或 vim 附加到文件,而不仅仅是写入它。

答案3

如果您知道要写入的行号,则可以从命令行执行此操作:

vim -c "100,200w new_file.txt" -c wq original_file.txt

答案4

一个小技巧是使用相对行号。例如:

:+0,+99w filename

将接下来的 100 行写入文件名

相关内容