Function 无法在vim中获取当前缓冲区的全部文本

Function 无法在vim中获取当前缓冲区的全部文本,function,vim,buffer,Function,Vim,Buffer,我正在尝试获取当前缓冲区的整个文本。我相信它是由“%”表示的(请参阅SnoringFrog at的答案)。但是,以下函数给出了一个错误: function Check () echo % endfunction 我用以下命令调用它: :call Check() 错误是: Error detected while processing function Check: line 1: E15: Invalid expression: % E15: Invalid expression

我正在尝试获取当前缓冲区的整个文本。我相信它是由“%”表示的(请参阅SnoringFrog at的答案)。但是,以下函数给出了一个错误:

function Check ()
   echo %
endfunction
我用以下命令调用它:

:call Check()
错误是:

Error detected while processing function Check:
line    1:
E15: Invalid expression: %
E15: Invalid expression: %

问题在哪里以及如何解决?

根据上下文,
%
可以是
1、$
范围的快捷方式,也可以是与当前缓冲区关联的文件名的占位符

在第一种情况下(链接中的一个),它根本不意味着要被回应,这将是完全没有意义的

在第二种情况下,如果要在函数中使用它,则需要使用
expand('%')
对其进行扩展

无论如何,这些都不重要,因为
%
根本不是你想要的。您需要的是
:help getline()


是的,它起作用了。但是空行被忽略了。任何将它们也包括在从getline函数获得的列表中的方法。不,空行不会被忽略。
function Check ()
    echo getline(1,'$')
endfunction