linux - 如何在vim中运行cut命令并更改当前文件

标签 linux vim cut

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

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

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

最佳答案

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

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

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

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

:%s/:.*//

filter命令:

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

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

相关文章:

linux - EPOLLET 模式下的 Epoll 在从套接字读取之前返回 2 EPOLLIN

linux - 如何仅在特定目标上使用 makefile 中的 .NOTPARALLEL?

vim - 取消映射 Vim 插件映射

linux - 如何选择特定的行和列

linux - Unix cut/awk : Print same column multiple times (e. g。 1000次)

linux - 从制表符分隔的文件中获取值

java - openjdk中的原生linux方法在哪里?

Vimrc 忽略我的 <cr>

unix - Vim 更新当前查看的文件

linux - yjw 替换然后用 sed 查找