2012-05-28 30 views
7

Làm cách nào để tôi có thể đặt nội dung của thanh ghi vào đầu vào chuẩn của lệnh ngoài? Tôi trực giác thử những điều sau đây, nhưng nó không hoạt động (có thể dùng để mô tả nhu cầu của tôi, mặc dù):Vim: đăng ký đường ống với lệnh ngoài

:"0w !some_command 

Trả lời

11

Nếu nội dung của thanh ghi không xảy ra để chứa NULLs sau đó nó cũng đơn giản như

call system('some_command', @r) 

. Nếu nó xảy ra sau đó do thực tế việc sử dụng thanh ghi như một biến sẽ biến tất cả chúng thành các dòng mới (và tôi không biết chúng được biểu diễn bên trong như thế nào bên cạnh thực tế là thanh ghi không đơn giản như cấu trúc với kiểu đăng ký và C Chuỗi chấm dứt NULL) bạn không thể sử dụng theo cách này và phải thay vào đó dán vào bộ đệm tạm thời và sử dụng :%w !. Nó thậm chí còn phức tạp hơn nếu bạn muốn có thể gửi đăng ký some_commandhoàn toàn nguyên vẹn khi đăng ký xảy ra có cả NULL (s) và một cái gì đó khác sau đó là dòng mới làm ký tự cuối cùng của nó.

+0

Chỉ là những gì tôi muốn! Không biết 'system()' lấy một đối số thứ hai. – slezica

Các vấn đề liên quan