2012-04-27 80 views
0

我正在將編輯器從gedit轉移到gvim。在gedit中,當我打開多個gedit窗口時,每個窗口都有多個選項卡,我可以單擊文檔列出打開的所有選項卡和窗口中的所有文件,然後通過單擊列表中的任意選項打開它們。gvim:轉到具有多個窗口和多個選項卡的特定文件打開

我該如何在gvim中做到這一點? gvim中的Buffers按鈕僅列出當前窗口中打開的文件。

謝謝!

+0

'click'是你需要忘掉的東西,如果你想切換到gvim/vim。我認爲你所要求的是不可能的,但我不明白爲什麼你需要爲同一個項目設置多個窗口。 – deviousdodo 2012-04-27 22:29:27

+0

@draevor:如果你使用':set mouse = a',你可以用鼠標點擊文本,也可以用':tabe'打開的文件的名字等等...... – 2012-04-27 22:59:52

+0

@Nicolás我並不是說用鼠標做很多事情是不可能的(特別是在啓用了菜單的gvim中),但它有點違背了目的。您可以通過鍵盤快速完成大部分(所有?)的事情。 – deviousdodo 2012-04-27 23:14:41

回答

1

GVim是一個單窗口程序。如果您有兩個GUI窗口,那麼您有兩個單獨的GVim進程無法真正相互交流。

從「普通」編輯器切換到Vim並非在公園散步:您必須適應Vim的思維模式才能成功切換。

Vim的「窗口」和「標籤」被嚴重命名,並在新手之間造成很多混亂。

在「普通」編輯器中,選項卡(或沒有選項卡的GUI窗口)是文件的1:1表示,GUI窗口是選項卡/文件的集合。該系統是確定性的:只要您沒有關閉它,就可以將第一個窗口與Controlers/等同起來,第二個窗口的第二個選項卡與Models/User.php等同。由於該「正常」編輯器是一個多窗口程序,所有這些標籤和窗口都是一個進程的子進程,因此主進程很容易提供其所有窗口和選項卡的列表。

在GVim中,兩個GUI窗口由兩個單獨的進程創建:GUI窗口#1不知道GUI窗口#2。而且,Vim的「windows」和「tabs」概念根本不是確定性的。一個「窗口」只是一個緩衝區的視圖,這個緩衝區可以是當前在內存中的任何緩衝區。 「選項卡」是一組窗口,其名稱自動設置爲當前顯示在活動「窗口」中的緩衝區。在極端情況下,您最終可能會在y選項卡中的x窗口中顯示相同的緩衝區。因此,由於GVim的設計,如果沒有大量工作來模仿Gedit的行爲,我認爲這是不可能的。

因爲它太容易了,特別是對於新用戶來說,混淆他們的「緩衝區」,「窗口」和「標籤」,我建議你至少暫時避開「標籤」,並學習最大限度地使用「緩衝區」和「窗口」。

Vim的默認行爲是要求您在將當前緩衝區替換爲當前窗口之前使用另一個緩衝區來保存當前緩衝區。這是我認爲很多人轉而使用Vim中的標籤的原因。 set hiddenset switchbuf=useopen解決此「問題」,並允許您在同一窗口中打開許多緩衝區。使用本機工具,切換緩衝區非常簡單::sb <tab>,性感/強大,可使用第三方工具,如CtrlPothers。如果您習慣於在不同的窗口中使用不同的項目部分(例如Controlers/Models/Views/的一個,或者一個用於後端,另一個用於前端),則可以使用Vim的選項卡。

+0

非常感謝。 – Romonov 2012-05-02 16:04:15

相關問題