2011-06-21 84 views
1

這是我的意思。內置的文件瀏覽器:Ex以及其他像NERDtree和Project等都有致命的缺陷,它們只能在單個選項卡中運行。我大量使用選項卡,並且我想要一個文件樹視圖,以便我可以在全局範圍內保持對所有選項卡的可見性,並將其從文件打開到新/現有選項卡。某種窗格或獨立窗口或你有什麼。就像凱特(kde)的作品一樣。vim文件瀏覽器保持跨標籤打開?

我知道有這樣的emacs的東西,因爲我過去曾經使用它,但我不記得它叫什麼。

+1

我相信這是重複的。檢查此答案:http://stackoverflow.com/questions/1979520/auto-open-nerdtree-in-every-tab/2762067#2762067或此鏈接http://denapo.li/blog/2011/01/vim-並且 - nerd-tree-always-share-the-same-tree-all-all-tabs /用於替代方法。另外,請檢查一下關於「選項卡vs緩衝區」以闡明vim的選項卡行爲。 http://stackoverflow.com/questions/102384/using-vims-tabs-like-buffers/103590#103590 – GmonC

回答

3

可能不是您正在尋找的答案,但還有另一種關於vim中的選項卡的方式,可以幫助解決您的問題。

您可以將每個標籤視爲您的工作空間中的「視圖」(相當於像eclipse這樣的IDE中的透視圖),而緩衝列表通常是其他程序中的標籤。

這樣你可以有一個選項卡,用於打開NERDTree的單個編輯器,一個用於「大型編輯器」的選項卡,一個用於「垂直拆分編輯器」等的選項卡,每個選項卡可以打開也可以不打開相同的緩衝區。

這樣你就可以堅持使用你的單一佈局,並使用:bnext:bprev沿着列表順序切換緩衝區,或者使用:b <approxname>輕鬆地跳轉到指定的緩衝區。如果獲得unimpaired plugin,映射]b[b也被定義爲映射到:bnext:bprev以便於訪問。 fuzzyfinder plugin也有一個:FufBuffer命令,可以讓你輕鬆地跳轉到一個打開的緩衝區(然後打開,分開或按下一個鍵,然後用一些非常直觀的默認綁定找到它)。

我是vimcasts的粉絲,this episode有一點我在這裏討論的一般想法的更多細節。

+0

好的,但後來我有一個非常重要的問題。我如何在每個選項卡中使用不同的cwd,以便我不必每次都從相同的$ PATH導航來打開緩衝區? – numerodix

+3

如果使用':lcd'命令,那麼即使在該窗口中更改緩衝區後,該窗口的cwd也會更改(無論是製表符還是拆分)。希望那是你的意思?儘管在單個vim實例中,完整的緩衝區列表在所有窗口和標籤之間共享。 – actionshrimp

+0

@numerodix:你可以讓你的工作目錄b總是和你正在編輯的緩衝區一樣。 http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file – GmonC

0

從我有限的經驗來看,Vim的選項卡與firefox,kate或textmate或其他任何應用程序完全不同。他們不代表文件,你不應該這樣使用它們。就像actionshrimp所說的那樣,標籤更像是視圖或透視圖,而且你不能將一個窗口(如NERDTree)從標籤中分離出來。

在保持這種區別的同時,您可以嘗試檢測標籤的創建並啓動NERDTree。這樣您可以在每個選項卡上擁有文件瀏覽器,但這些文件瀏覽器將是NERDTree的x個實例,而不是1個實例。我認爲這會很快導致內存問題。

我對每個項目都有一個標籤。這與我認爲是選項卡背後的想法是一致的,對於保持組織有很大幫助。