Файл подсветки синтаксиса для команды echo (VIM)? - PullRequest
0 голосов
/ 18 января 2010

Я работаю в сценарии Vim. Одной из моих функций требуется временное отображение, подобное тому, которое вы получаете при наборе ": clist ". Мне не нужен совершенно новый буфер, потому что я настолько ленив, что предпочитаю набирать только одну клавишу, чтобы удалить информацию.

Я застрял с подсветкой синтаксиса команды echo. Я хочу применить весь файл синтаксиса, но пока я только что видел ": echohl ", и с этим я могу применить только одно правило синтаксиса. Я пробовал кластер синтаксиса, но он тоже не работает.

Является ли ": echohl " и синтаксические кластеры правильным путем?

1 Ответ

1 голос
/ 19 января 2010

Я не уверен, удастся ли вам сделать это с помощью echo и списка сообщений.

Хороший способ сделать это - создать новый буфер и поместить интересующий вас материал в этот буфер. Затем установите буфер на nomodifiable, nomodified и buftype=wipe. Если вам нужно добавить больше данных в буфер, set modifiable, добавьте данные, а затем set noma nomod bh=wipe. Установите для типа файла что-то нестандартное и напишите файл синтаксиса для требуемого синтаксиса.

Установите имя буфера в соответствии с вашими требованиями.

Наконец, сопоставьте сочетание клавиш или команду с чем-то вроде:

map @ :exe 'bufdelete' bufnr('MyBufferName')<CR>

Это заставит клавишу @ закрыть буфер (тем самым предоставляя вам единственный метод удаления информации - один ключ). Конечно, вы могли бы улучшить это, вставив его в функцию и проверив, что буфер существует перед его удалением, но я пока оставлю это как упражнение для вас (дайте мне знать, если у вас возникнут проблемы).

Существующий плагин, который делает нечто похожее на это Плагин Dr Chip RunView . Посмотрите на исходный код и посмотрите, поможет ли он. Добавьте комментарий к этому сообщению, если вам нужна дополнительная помощь.

...