2011-10-02 27 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

感谢您的解释。 –

相关问题