如何使用vi删除文件中的所有行?
目前我使用这样的方法来删除文件中的所有行:
echo > test.txt
Run Code Online (Sandbox Code Playgroud)
如何使用 删除所有行vi?
注意:
使用dd不是一个好的选择。可以有很多行。
Ant*_*hon 585
在vi做
:1,$d
Run Code Online (Sandbox Code Playgroud)
删除所有行。
在:引入了一个命令(和将光标移动至底部)。
的1,$是指示哪些行的以下命令(d)应努力。在这种情况下,从第一行到最后一行的范围(由 表示$,因此您不需要知道文档中的行数)。
最后d代表删除指定的行。
有一个更短的形式 ( :%d) 但我发现自己从未使用过它。的:1,$d可以更容易地“适应”例如:4,$-2d仅离开第一3和最后2行,删除其余部分。
Arc*_*mar 229
在vi中我使用
:%d
Run Code Online (Sandbox Code Playgroud)
在哪里
: 告诉 vi 进入命令模式% 意味着所有的行d : 删除在命令行中,
> test.txt
Run Code Online (Sandbox Code Playgroud)
也会做。
dd 有什么问题?
dd if=/dev/null of=test.txt
Run Code Online (Sandbox Code Playgroud)
在哪里
/dev/null 是一个特殊的 0 字节文件if 是输入文件of 是输出文件Chr*_*own 62
我建议你这样做(应该在任何符合 POSIX 的 shell 中工作):
> test.txt
Run Code Online (Sandbox Code Playgroud)
如果你真的想用 vi 来做,你可以这样做:
ken*_*orb 36
如果您的光标在第一行(如果不是,请键入:gg或1G),那么您只需使用dG. 它将删除从当前行到文件末尾的所有行。因此,为了确保您将从文件中删除所有行,您可以将两者混合在一起,这将是:(ggdG在命令模式下)。
或者%d在 Ex 模式下,命令行示例:vim +%d foo.bar.
Tan*_*ash 32
我是一个懒惰的家伙,我喜欢保持简单。ggdG是五个按键,包括Shift
gg转到文件中的第一行,d是delete 动词的开头,G是转到文件底部的移动。详细地说,它会转到文件的开头并删除所有内容,直到磁贴结束。
我总是用 ggVG
gg 跳转到当前编辑文件的开头V(大写的 v)将选择当前行。在这种情况下当前编辑文件的第一行G(大写的 g)将跳转到文件的末尾。在本例中,由于我选择了第一行,因此G将选择此文件中的整个文本。然后您只需按d或x即可删除所有行。