2012-03-17 21 views
7

Tôi muốn sắp xếp các đoạn văn trong văn bản của tôi theo cái đầu của họ với lệnh toàn cầu sau:Nhiều lệnh toàn cầu trong Vim cho lỗi: Không thể làm: toàn cầu đệ quy

g/_p/,/^$/mo$ 

này hoạt động một mình. Nhưng khi tôi sử dụng một số lệnh toàn cầu cùng một lúc, sau đó là một lỗi xảy ra:

g/_p/,/^$/mo$|g/_w/,/^$/mo$ 

này cung cấp cho các lỗi sau:

Cannot do :global recursive 

Làm thế nào tôi có thể chạy các lệnh tuần tự cùng một lúc?

Trả lời

7
:exe 'g/_p/,/^$/mo$' | g/_w/,/^$/mo$ 

Xem :help:bar

+1

Trong trường hợp này, không nhất thiết phải bao bọc cả lệnh ': global' trong': execute', nó chỉ đủ để bọc lệnh đầu tiên: ': exe'g/_p /,/^ $/mo $ ' | g/_w /,/^ $/mo $ '. –

+0

@ib .: Tôi đã kết hợp đề xuất của bạn. Tốt nhất, cảm ơn! Tôi đặc biệt thích thực tế, rằng bạn thậm chí đã lưu không gian giữa ': exe' và tham số của nó' '… '. xD –

0

Here là một vài dòng vimscript rằng sắp xếp tất cả các đoạn văn. Nhưng họ nhận ra các đoạn bằng thụt lề, chứ không phải dòng trống. Nhưng chắc chắn người ta có thể thích ứng với nó để phân biệt các đoạn văn bằng các dòng trống.