87 我正在尝试将bash命令的输出重定向到新文件。 如果我尝试如下管道: ls -la | vim Bash向我显示了错误: Vim: Error reading input, exiting... Vim: preserving files... Vim: Finished. 我知道我可以打开Vim然后使用: :r !ls -la 但是有没有办法在bash本身中做到这一点,从而打开Vim并将输出自动粘贴到那里? bash vim vi — 狂热的 source
140 您可以使用流程替换(这也适用于无法读取的应用程序STDIN): vim <(ls -la) 或使用vim的功能读取以下内容STDIN: ls -la | vim - — 混沌 source 2 <(ls -la)实际上是进程替代而不是命令替代。 — 伊利亚·卡根 1 我真的很喜欢vim的选项,它使我可以轻松地从数据转储中搜索,查找和保存输出。 — Josue Alexander Ibarra
19 这是另一种方法,希望可以教给别人一些新知识。 如果您知道该命令:r !ls -la可在vim中运行,则可以执行以下操作以打开vim,并使其在打开后立即从bash直接运行该命令: vim -c ':r! ls -la' 这相当于打开vim然后执行命令:r! ls -la。这应该与任何vim命令一起使用,该命令在-c选项之后。 — 阿拉·阿里 source
1 setlocal buftype=nofile 如果要创建别名来替换,这是一个不错的选择less: seq 100 | vim +':setlocal buftype=nofile' - 现在,您无需输入!退出。 另一个选择是: seq 100 | vim +'nnoremap q :quit!' - 这样您就可以退出q<enter>。 — Ciro Santilli新疆改造中心法轮功六四事件 source 好主意。绝对比输入这么长短!:) — kode
<(ls -la)
实际上是进程替代而不是命令替代。