如何查看所有vim的开放缓冲区的文件路径?

bej*_*bee 6 vim

有没有办法在vim中列出所有打开的缓冲区?我想查看每个打开缓冲区的完整文件路径,并将列表保存到外部文件,或者将其粘贴到另一个文本文档中.

这是一场非常艰难的比赛!以下所有3条建议都运作良好.我去了,Luc Hermitte's并把它添加到我的vimrc:

noremap <silent> <leader>so :call writefile( map(filter(range(0,bufnr('$')), 'buflisted(v:val)'), 'fnamemodify(bufname(v:val), ":p")'), 'open_buffers.txt' )<CR>

因此,现在键入,so会将所有打开缓冲区的所有完整路径保存到文件中的当前目录open_buffers.txt

Luc*_*tte 7

我用"简单":

echo map(filter(range(0,bufnr('$')), 'buflisted(v:val)'), 'fnamemodify(bufname(v:val), ":p")')
Run Code Online (Sandbox Code Playgroud)

附:

  • range(0,bufnr('$'))有一个|列表| 所有可能的缓冲区编号
  • filter(possible_buffers, 'buflisted(v:val)')将列表限制为实际列出的缓冲区 - 您可能更喜欢bufexist()它还会显示帮助缓冲区等.
  • map(listed_buffer, 'nr_to_fullpath(v:val)') 将所有缓冲区数转换为完整路径名
  • bufname() 将单个缓冲区编号转换为(简化的)路径名
  • fnamemodify(pathname, ':p') 从相对路径名获得完整的绝对路径名.

更改:echocall writefile(pathname_list, 'filename'),而这一切,还是要:put=等.