Как я могу получить навигационный (редактируемый?) Буфер с сообщениями vim?

394
ELLIOTTCABLE

Поэтому, если я получаю ошибку от плагина, я хотел бы иметь возможность сообщить об этой ошибке на GitHub или аналогичном.

К сожалению, это не выбирается мышью; и после того, как появился и попросил меня нажать RETURN, он, кажется, ушел навсегда.

  1. Я обнаружил, что могу заставить ошибки появляться снова, используя :messagesили :3messagesили подобное; но они выглядят одинаково: не выбираются, бесполезны.

  2. Другой накопитель задал похожий вопрос, который дал полезную команду :let @+=v:errmsg- но она захватывает только самую последнюю строку сообщений; многие ошибки, которые я вижу, состоят из нескольких строк, все из которых я бы хотел выбрать.

Пожалуйста, помогите мне, либо A. превратить :messagesокно в буфер, так что я могу использовать нормальный также визуальный выбор, чтобы скопировать то, что я хочу сообщить вне Vim, или по крайней мере B. построить что - то я могу бросить в мой, .vimrcчто будет копировать все из строки самой последней ошибки в мой буфер обмена.

Спасибо! (=

2

2 ответа на вопрос

2
Heptite

Попробуй это:

:redir > messages.txt :messages :redir END :e messages.txt 

Вы можете подавить вывод на дисплей, сохраняя вывод сообщений, изменив :messagesна :silent messages.

1
Andrew Radev

Ответ от Heptite - хороший способ сделать это, используя встроенные модули. Если у вас все в порядке с использованием плагина, мой плагин bufferize немного автоматизирует процесс. Позволяет вам просто сделать:

:Bufferize messages 

Для того, чтобы получить буфер предварительного просмотра с содержимым вывода этой команды.

Как примечание стороны, я удивлен, что :messagesвывод не выбирается. Наверное, вы используете Vim с графическим интерфейсом? С помощью терминала Vim вы можете выбрать, а затем щелкнуть средней кнопкой мыши и вставить содержимое.