Vim / Cygwin: Pas de sauts de ligne dans:! sortie

3

J'utilise Vim via MinTTY sous Cygwin. Quand je lance une commande comme

:!ls -la

la sortie affichée ne montre pas correctement les nouvelles lignes. Cela saute plutôt à la colonne virtuelle de la ligne suivante, où se terminait la sortie précédente, comme ceci:

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

Quelqu'un a-t-il une idée de la cause de ce comportement? Quelques réglages:

:set sh?
sh=/bin/bash

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

ils n'ont jamais été touchés par moi. Vim est lancé avec '-X -T xterm-256color', mais cela ne semble pas jouer de rôle.

Boldewyn
la source

Réponses:

1

Il me semble que c'est à cause des différences de fin de ligne. Vim utilise par défaut les fins de ligne CR / LF de style DOS. Mais lorsque vous exécutez les commandes, vous ne voyez que le LF.

Je sais que cela n'a aucun sens.

Mais je serais intéressé de voir ce qui se passe si vous :set shellpipe?=2>&1\|unix2dos\|teeet ensuite:!ls -la

Zac Thompson
la source
Je suis sous Linux en ce moment, mais je le testerai dès que je serai de retour sur une machine Windows.
Boldewyn
0

J'ai vu quelque chose de similaire lorsque vim tente de faire une mise en retrait intelligente. Essayez d’utiliser le tampon de collage :!acar cela n’entraîne pas d’indentation intelligente.

Jarvin
la source
Hm. Cela ressemble plus à un problème MinTTY + écran + bash. J'ai testé sous Debian avec les mêmes versions .vimrc et vim, et tout fonctionne bien. D'un autre côté, même le commandant de minuit a ce comportement étrange lorsque j'en publie un ls -la.
Boldewyn