如何 运行 在 vim 中剪切命令并更改当前文件

How to run cut command in vim and change the current file

如何在 vim 中使用 运行 cut 命令并更改正在编辑的文件的内容。我尝试关注但没有成功。

:r ! cut -d ":" -f 1 % > %

和它的一些其他变体。我想使用 cut 编辑当前打开的文件,并想知道如何仅使用 vim 本身内部的 cut 来完成此操作。

它不起作用的原因是因为重定向运算符 > 使 shell 在 命令执行之前截断文件 ,所以 cut 看到一个空的输入文件。

您可以改用 :w 通过标准输入将当前缓冲区的内容通过管道传输到 cut,然后重定向到文件:

:w ! cut -d ":" -f 1 > %

这会产生副作用 Vim 提示您重新加载文件。您可以使用不表现出这种行为的替代方法,例如 substitution:

:%s/:.*//

filter 命令:

:% ! cut -d ":" -f 1
:%!cut -d":" -f1

:help :range!