Vim/Cygwin::! 输出中没有换行符

Vim/Cygwin::! 输出中没有换行符

我在 Cygwin 下通过 MinTTY 使用 Vim。当我发出如下命令时

:!ls -la

显示的输出无法正确显示换行符。它只是跳转到下一行的虚拟列,即上一个输出结束的位置,如下所示:

This is line 1
              This is line 2
                            This line wraps
around
      Line 4 starts here

有人知道是什么原因导致了这种现象吗?一些设置:

:set sh?
sh=/bin/bash

:set shellpipe?
shellpipe=2>&1| tee

我从未碰过它们。Vim 以 '-X -T xterm-256color' 启动,但这似乎不起作用。

答案1

在我看来,这是因为行尾不同。Vim 默认使用 DOS 样式的 CR/LF 行尾。但是当您运行命令时,您只会看到 LF。

我知道这没有任何意义。

但我很想知道如果你:set shellpipe?=2>&1\|unix2dos\|tee然后:!ls -la

答案2

当 vim 尝试进行智能缩进时,我见过类似的情况。尝试使用粘贴缓冲区,:!a因为它不进行智能缩进。

相关内容