Как получить содержимое текущего буфера в командном режиме vim? - PullRequest
5 голосов
/ 17 августа 2010

Существует функция vim Send_to_Screen(text), которая отправляет некоторый текст в сеанс экрана консоли. У меня есть отображение

vmap <F4> "ry :call Send_to_Screen(@r)<CR>

, которая вызывает функцию с текущим выбором. Теперь я хочу определить другое отображение, которое вызывает функцию с содержимым всего буфера, но я не могу заставить его работать Я пытался

nmap <F5> maggVG"ry`a :call Send_to_Screen(@r)<CR> 

но это не работает. Так как мне определить отображение с текстом текущего буфера?

1 Ответ

13 голосов
/ 18 августа 2010

Как насчет:

nmap <F5> :call Send_to_Screen(join(getline(1,'$'), "\n"))<CR>

Функция getline() возвращает список строк в выбранном диапазоне (1 - первая строка и «$» - последняя), а функция join() объединяет содержимое списка вместе с указанным разделителем (" \ n "в этом случае). См:

:help getline()
:help join()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...