2016-11-30 52 views
2

我想寫一個函數,我可以從命令調用,這將允許我重新設置所有打開的窗格大小相等。我開始與此:.vimrc函數 - 如何調用等於(=)鍵的「正常」模式按鍵

command Equal execute "normal! <C-w>=" 

,讓我打電話給

:Equal 

其中一期工程我希望它的方式。但是,我需要爲這個(if語句等)添加更多的功能,所以我需要將它聲明爲一個函數。但是,我不知道如何從我的函數內調用「等號」鍵。以下是我有:

command Equal call EqualizePanes() 

function! EqualizePanes() 
    execute "normal! <C-w>=" 
endfunction 

我知道我的函數聲明和調用它是正確的,因爲我已經取代我的函數的內容簡單的東西,比如「回聲foobar的」,它按預期工作的方法。然而,就目前而言,當我撥打:Equal時,什麼也沒有發生。我試過其他東西,如:

command Equal call EqualizePanes() 

function! EqualizePanes() 
    normal <C-w>= 
endfunction 

以及沒有任何運氣。有什麼想法,我在做什麼錯在這裏?在此先感謝您的幫助。

回答

4

問題是normal不解析像<C-w>這樣的特殊字符序列。因此逃避

command Equal call EqualizePanes() 

function! EqualizePanes() 
    execute "normal! \<C-w>=" 
endfunction 
+0

真棒!謝謝! –

6

注意,有一個特殊的:wincmd Ex命令,你可以改用的:normal;這避免了:execute即通常需要處理\<C-w>符號:

command Equal wincmd = 
+0

啊,非常酷,謝謝! –

相關問題