Vim / Cygwin: Không có ngắt dòng trong :! đầu ra


3

Tôi đang sử dụng Vim qua MinTTY dưới Cygwin. Khi tôi phát lệnh như

:!ls -la

đầu ra được hiển thị không hiển thị dòng mới chính xác. Nó chỉ nhảy vào cột ảo của dòng tiếp theo, nơi đầu ra trước đó kết thúc, như thế này:

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

Có ai có ý tưởng, điều gì gây ra hành vi này? Một số cài đặt:

:set sh?
sh=/bin/bash

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

họ không bao giờ chạm vào tôi. Vim được bắt đầu với '-X -T xterm-256color', nhưng dường như điều đó không có vai trò gì.

Câu trả lời:


1

Có vẻ như tôi là vì sự khác biệt kết thúc dòng. Vim được mặc định là kết thúc dòng CR / LF theo phong cách DOS. Nhưng khi bạn đang chạy các lệnh, bạn chỉ nhìn thấy LF.

Tôi biết điều này không có ý nghĩa gì.

Nhưng tôi muốn biết điều gì sẽ xảy ra nếu bạn :set shellpipe?=2>&1\|unix2dos\|teevà sau đó:!ls -la


Tôi đang sử dụng Linux ngay bây giờ, nhưng tôi sẽ kiểm tra nó ngay khi tôi quay lại máy Windows.
Boldewyn

0

Tôi đã thấy một cái gì đó tương tự khi vim đang cố gắng làm thụt thông minh. Hãy thử sử dụng bộ đệm dán :!avì điều này không làm thụt lề thông minh.


Hừm. Nó có vẻ giống như một vấn đề về màn hình + bash + MinTTY. Tôi đã thử nghiệm với Debian với cùng phiên bản .vimrc và vim và mọi thứ đều hoạt động tốt. Mặt khác, ngay cả chỉ huy nửa đêm cũng có hành vi kỳ lạ này, khi tôi phát hành ls -laở đó.
Boldewyn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.