này liên quan đến câu hỏi này: How to redirect ex command output into current buffer or file?Làm cách nào để nắm bắt đầu ra của lệnh vim trong sổ đăng ký, không có dòng mới?
Tuy nhiên, vấn đề với việc sử dụng :redir
là nó gây ra 3 hoặc 4 dòng mới thêm ở phía trước của đầu ra, và họ dường như rất khó để loại bỏ bằng cách sử dụng chức năng thay thế.
Ví dụ, nếu tôi làm như sau:
:redir @a
:pwd
:redir END
Nội dung @a
bao gồm ba dòng trống và sau đó sản lượng dự kiến thông thường.
Tôi cố gắng để gửi quá trình với một cái gì đó như thế này:
:let @b = substitute(@a, '\s*\(.\{-}\)\s*', '\1', '')
Nhưng kết quả là @b
có nội dung tương tự như @a
.
Có ai biết cách hiệu quả hơn (tức là hoạt động) để xử lý sau hoặc thay thế cho :redir
không có các dòng bổ sung đó không?
Bạn đã thử với ': let @b = replace (@a, '\ n', '', 'g')'? – Raimondi
Tôi vừa thử. Điều đó làm việc rất tốt! Bây giờ tôi cảm thấy ngu ngốc. = P – merlin2011