无法在 vim 中获取当前缓冲区的完整文本

Not able to get entire text of current buffer in vim

我正在尝试获取当前缓冲区的完整文本。我相信它由“%”表示(请参阅 SnoringFrog 在 https://vi.stackexchange.com/questions/2319/is-there-a-text-object-for-the-entire-buffer 的回答)。但是,以下函数会出错:

function Check ()
   echo %
endfunction

我用以下命令调用它:

:call Check()

错误是:

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

问题出在哪里,如何解决?

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

在第一种情况下(您 link 中的那个),它根本不应该被回显,这将是完全没有意义的。

第二种情况,如果要在函数中使用,需要用expand('%')展开

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

function Check ()
    echo getline(1,'$')
endfunction