如何在 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

关于linux - 如何在vim中运行cut命令并更改当前文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45897140/

10-17 00:36