2011-10-02 31 views
4

我想從標記列表中刪除不需要的滾動條。我創造了這樣的功能和命令:我怎麼能說從vim腳本編輯器命令?

function s:TlistWaToggle() 
    normal :TlistToggle<cr> " <- this does not work 
    set guioptions-=r 
endfunction 

command! -nargs=0 -bar TlistWaToggle call s:TlistWaToggle() 

我想包裝調用:TlistToggle與命令一起刪除右邊的滾動條(我當然有該設置,但它總是會重新出現,所以這是一種解決方法)。目前我的:TlistWaToggle沒有做任何事情。我怎樣才能使它工作?

回答

4

Vim腳本使用ex命令,顯然:TlistToggle是一個前命令

function! s:TlistWaToggle() 
    TlistToggle 
    set guioptions-=r 
endfunction 
+0

很樂意幫忙陶! – sidyll

3

除了@ sidyll的回答是::normal不是:*map,只接受原字符串。正確的命令將execute "normal! :TlistToggle\<CR>"(或execute "normal! :TlistToggle\n")。請注意,您不應在腳本中使用非壓縮版本。

我不認爲你會用:normal!來執行ex命令,但是當你想傳遞任何其他特殊字符時,我的回答會很有用。它也適用於feedkeys()通話。

順便說一句,評論和其他命令將被視爲傳遞給:normal命令字符串的一部分。

+0

感謝您的解釋。 –

相關問題