2009-03-15 7 views
2

(上場および非上場のバッファがある)vimのバッファがvimのpython apiにリストされているか、またはリストから外されているかどうかを調べるにはどうすればよいですか?私はまだ記載されているすべてのvimのバッファを把握する必要があるツールの

残念ながらvim.buffersは、すべてのバッファが含まれており、バッファは表示されているかあるいは非上場されている場合把握するために属性があるように思われるのdoesnt

私は何をしたいのかのvimのコマンドが、残念ながら、すべては

をエミュレートしているのvimのpython APIで可能thatsの

:buffers 

です

リストされたもの/リストされていないものに関するメタデータなし

答えて

6

これはVim言語だけを使ってこれを管理する方法です。

listedBufs = [] 
for b in vim.buffers: 
    listed = vim.eval('buflisted(bufnr("%s"))' % b.name) 
    if int(listed) > 0: 
     listedBufs.append(b) 

かあなたには、いくつかの読みやすさを犠牲にする気にしない場合:VimのPythonのAPI使用

function s:buffers_list() 
    let result = [] 

    for buffer_number in range(1, bufnr('$')) 
     if !buflisted(buffer_number) 
      continue 
     endif 

     call add(result, buffer_number) 
    endfor 

    return result 
endfunction 
3

listedBufs = [b for b in vim.buffers 
       if int(vim.eval('buflisted(bufnr("%s"))' % b.name)) > 0] 
関連する問題