2011-12-25 40 views
13

Trong gVIM tôi sử dụng lệnh echomsg để xuất thông báo gỡ lỗi từ tập lệnh của tôi (cho mục đích gỡ lỗi) và messages lệnh để xem chúng. Tất cả hoạt động tốt, nhưng cơ sở lộn xộn vim hiển thị tất cả tin nhắn - từ tất cả các tập lệnh, hệ thống, thông báo, v.v. Có cách nào đó để xóa danh sách thư (thủ công trước khi tôi thực hiện hành động tôi muốn gỡ lỗi) để tôi có thể dễ dàng xem thư từ kịch bản? Hoặc có lẽ một số bộ lọc tôi có thể sử dụng để chỉ xem tin nhắn của tôi?Có thể xóa lịch sử tin nhắn trong gVIM không?

+0

Dường như không có cách nào để xóa 'thư-lịch sử' – kev

+0

Có thể nơi nào là cách để đăng thông báo gỡ lỗi thay thế? – grigoryvp

+1

@EyeofHell Một cái gì đó như 'lệnh -nargs = 1 -bar Echo: cho g: messages = get (g :, 'messages', []) + []'. Thao tác này sẽ đặt các thông báo gỡ lỗi vào danh sách 'g: messages' (và tạo thông báo nếu được yêu cầu). – ZyX

Trả lời

6

AFAIK bạn có thể không rõ ràng lịch sử tin nhắn, nhưng bạn có thể sử dụng lệnh riêng của bạn thay vì :echom, ví dụ:

command -nargs=1 -bar Echo :let g:messages=get(g:, 'messages', [])+[<q-args>] 

hoặc, có lẽ tốt hơn,

command -nargs=1 -bar Echo :let g:messages=get(g:, 'messages', [])+[eval(<args>)] | echom <args> 

một đầu tiên không phải là đánh giá đối số của nó và do đó không thể thay thế :echom, thứ hai là, nhưng lưu ý rằng trong khi với :echom:echom 1 2:echom 1.' '.2 sản xuất cùng một kết quả, với :Echo đầu tiên sẽ là lỗi khi bạn buộc phải sử dụng biểu mẫu thứ hai.

Cả hai lệnh sẽ đặt thông báo vào biến g:messages, tạo thông báo nếu cần. Để xóa lịch sử, chỉ cần sử dụng

unlet g:messages 
+1

Đối với phiên bản vim mới hơn, hãy xem: https://stackoverflow.com/a/36777871/237059 – Stabledog

-1

Lệnh này điền vào các thư trống để xóa lịch sử tin nhắn.

command! MessageClear for n in range(200) | echom "" | endfor

Source

6

như của vim 7.4.1735 bạn có thể làm :messages clear để xóa lịch sử.

+0

làm việc trong neovim. cảm ơn. – arcseldon

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