如何在vim命令模式下获取当前缓冲区的内容?

时间:2010-08-17 12:23:41

标签: vim

有一个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 个答案:

答案 0 :(得分:13)

怎么样:

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

函数getline()返回所选范围内的行列表(1是第一行,“$”是最后一行),函数join()连同列表的内容和提供了分隔符(在这种情况下为“\ n”)。参见:

:help getline()
:help join()