在我的Vimscript中,我想遍歷所有/只包含磁盤上文件的緩衝區。目前,我這樣做是爲了得到緩衝一組ID:獲取包含真實文件的緩衝區列表的最佳方式是什麼?
filter(range(1, bufnr('$')), 'buflisted(v:val)')
再後來我測試每個緩衝區ID有:
filereadable(fnamemodify(bufname(buffer_id), ':p'))
我讀過關於buflisted,bufloaded和朋友的文檔,但我仍不清楚它們之間的區別。因此我不確定上面的代碼片段是否是最優的。
此外這似乎是一個常見的任務,將有一個內置函數,但我找不到一個。
這是最好的方式還是有更好的方法?
OK,但' buflisted()'我相信我仍然需要我寫的第二個測試,每個緩衝區調用三個函數。這不是有效的。 – 2013-03-19 11:14:59
第二個測試(可以放入第一個'filter()')檢查_existing files_。是的,如果這是你的標準的一部分,你需要。 – 2013-03-19 11:28:48
總體性能受文件名擴展和文件系統檢查影響最大,而不是調用三個函數;儘管你需要知道確切的情況。除非你真的遇到問題,否則不要擔心。只有解決真正的瓶頸,而不是你認爲的緩慢。 – 2013-03-19 11:33:10