无法在 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
我正在尝试获取当前缓冲区的完整文本。我相信它由“%”表示(请参阅 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