如何访问Vim中修改缓冲区的内容?在Vim中读取修改缓冲区的内容
例如,如果我想的内容串联到一个临时文件,如:(?这是正确的)
:! cat % > /tmp/modified.txt
但是,这给我的文件上次保存的内容。我希望避免之前保存文件,因为此交互是意味着允许进行一些分析而不先保存缓冲区。
看来,Python扩展为Vim允许你做这样的事情:
def buffer_contents(buffer=vim.current.buffer):
contents = buffer[:]
但我不能找到相同的功能的任何VimL
引用。
编辑:看来我可以这样做:
:let buffer_contents = join(getline(1, '$'), '$')
在这一点上我只是不知道是否有一个内置的方法。
为什么在最后一条命令中需要'join()'? 'getline(1,'$')'会给你一个缓冲区中的行列表,除此之外没有更多的内建函数。顺便说一下,不要使用'buffer = vim.current.buffer',在函数创建时,默认参数只计算一次,因此如果切换缓冲区,它将指向错误的参数。 – ZyX
我只是想举一个例子,不正确的Python :)。我使用了连接,因为我不想要数组。没有人认为这应该是不方便改变。 – alfredodeza