Подтвердить что ты не робот

Возможно ли очистить историю сообщений в gVIM?

В gVIM я использую команду echomsg для вывода отладочных сообщений из моих сценариев (для целей отладки) и команды messages для их просмотра. Все работает нормально, но средство обмена сообщениями vim отображает все сообщения - из всех сценариев, системы, уведомлений и т.д. Является ли способ очистить список сообщений (вручную, прежде чем выполнять действие, которое я хочу отлаживать), поэтому я могу легко видеть сообщения из моего script? Или, может быть, какой-то фильтр, который я могу использовать для просмотра только моих сообщений?

4b9b3361

Ответ 1

AFAIK вы не можете очистить историю сообщений, но вы можете использовать свою собственную команду вместо :echom, например:

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

или, может быть, лучше,

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

Первый не оценивает его аргумент и, следовательно, не может быть заменой :echom, во-вторых, но обратите внимание, что в то время как при :echom :echom 1 2 и :echom 1.' '.2 получается тот же вывод, при :Echo сначала будет ошибка, вынуждающая вас использовать вторую форму.

Обе команды помещают сообщения в переменную g:messages, создавая при необходимости. Чтобы очистить историю, просто используйте

unlet g:messages

Ответ 2

с vim 7.4.1735 вы можете сделать :messages clear, чтобы очистить историю.

Ответ 3

Эта команда заполняет пустые сообщения, чтобы очистить историю сообщений.

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

Источник