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