2011-05-13 94 views
0

我一直在使用Vim和WinWalker,一個緩衝區管理器。有一個很大的功能是自動調整分割窗口的大小。所以,當我將一個緩衝區聚焦時,它將調整到最大寬度和高度。在Vim中自動調用密鑰映射開始

然而,激活此功能,你需要打ctrl+w彈出WinWalker命令(雖然它可以映射到另一個鍵),然後按下c激活自動尺寸(這樣你就可以打ctrl+w和c右後組合)。這非常乏味,尤其是當您已經打開了多個緩衝區時,必須激活每個緩衝區中的自動調整。

我的問題是:有沒有辦法在.vimrc中自動調用這個組合鍵?

我試過類似autocmd VimEnter <C-W>c,但它不起作用。另外,我並不擅長定製Vim。那麼,有人可以幫助我嗎?

在此先感謝

回答

0

什麼你可能想這樣做,調用函數調用<C-W>c。我知道如何發現所需功能的唯一方法是使用:map或查看源代碼。命令:map將顯示所有當前的密鑰綁定。我懷疑這會告訴你你想要的一切,但它應該告訴你什麼<C-W>被映射到,它可以告訴你在源代碼中的位置。

另外,請確保閱讀WinWalker提供的任何幫助文件。作者可能已經建立了一個開始使用該功能的機制。如果是這種情況,它可能就像在.vimrc中定義一個變量一樣簡單。

+0

確切地說,我發現正在調用WinWalkerMenu(),並且在一段時間的真循環中它正在等待輸入,所以當你點擊c時,它會跳轉到一個case。實際上,這是WinWalker中的一個次要功能(_「哦,順便說一下,它也自動調整大小,儘管它不相關」),所以默認情況下沒有直接的功能來激活它。然後將是一種方法:調用WinWalker()並「模擬」一個'c'輸入? – Korcholis 2011-05-13 16:36:41

+0

@Kor我不熟悉在vim腳本(.vimrc)中模擬用戶輸入的任何方法。我不是說它不存在,我只是不知道該怎麼做。如果我處於你的位置,我會做的是抽象出功能的功能並向作者提交補丁。 – cledoux 2011-05-13 17:10:40

+1

@Kor我繼續前進並修改了腳本。我不使用WinWalker,所以我不確定它是否像它應該的那樣工作,但是如果你願意,你可以測試它。我已經通過https://github.com/karategeek6/WinWalkerClone將它上傳到git repo只修改插件/ WinWalker.vim文件。要調用的函數是WinWalkerAutoWindowResize()。 – cledoux 2011-05-13 17:11:52