How to make unite menu exec command as expected?
@Shougo
    Sorry for disturbing you,but I do not think it is an issue with unite.maybe it just should has another way to execute command.
     I have this simple vim script.

``` vim
let g:unite_source_menu_menus = get(g:,'unite_source_menu_menus',{})
let g:unite_source_menu_menus.CustomKeyMaps = {'description': 'Custom mapped keyboard shortcuts                   [unite]<SPACE>'}
let g:unite_source_menu_menus.CustomKeyMaps.command_candidates = []
fu! zvim#util#defineMap(type,key,value,desc,...)
    exec a:type . ' ' . a:key . ' ' . a:value
    exec "call add(g:unite_source_menu_menus.CustomKeyMaps.command_candidates, [" 
                \. "'➤ "
                \. a:desc
                \. repeat(' ', 80 - len(a:desc) - len(a:key))
                \. a:key
                \. "','"
                \. (len(a:000) > 0 ? a:000[0] : a:value)
                \. "'])"

endf
nnoremap <silent><leader><Space> :Unite -silent -winheight=17 -start-insert menu:CustomKeyMaps<CR>
```

so  I can define mappings with discribtion by

``` vim
call zvim#util#defineMap('nnoremap', '[Window]', '<Nop>'   , 'Defind window prefix'   ,'normal [Window]')
call zvim#util#defineMap('nmap'    , 's'       , '[Window]', 'Use s as window prefix' ,'normal s')

call zvim#util#defineMap('nnoremap <silent>', '<Tab>', ':wincmd w<CR>', 'Switch to another buffer','wincmd w')
call zvim#util#defineMap('nnoremap <silent>', '[Window]p', ':<C-u>vsplit<CR>:wincmd w<CR>',
            \'vsplit vertically,switch to next window','vsplit | wincmd w')
call zvim#util#defineMap('nnoremap <silent>', '[Window]v', ':<C-u>split<CR>', 'split window','split')
call zvim#util#defineMap('nnoremap <silent>', '[Window]g', ':<C-u>vsplit<CR>', 'vsplit window','vsplit')
call zvim#util#defineMap('nnoremap <silent>', '[Window]t', ':<C-u>tabnew<CR>', 'Create new tab','tabnew')
call zvim#util#defineMap('nnoremap <silent>', '[Window]o', ':<C-u>only<CR>', 'Close other windows','only')
```

also I can view all my mapping by unite menu
![2016-04-23-21 26 17](https://cloud.githubusercontent.com/assets/13142418/14765117/1f7581a2-0a05-11e6-95de-fa74e233bad1.png)

but there definition give me some error; first one works well ,but second one show errors.

``` vim
call zvim#util#defineMap('nnoremap <silent>', '[Window]\', ':<C-u>b#<CR>', 'Switch to the last buffer','b#')
call zvim#util#defineMap('nnoremap <silent><expr>', 'q', "winnr('$') != 1 ? ':<C-u>close<CR>' : ''",
            \ 'Smart close windows',
            \ "winnr('$') != 1 ? 'close' : ''")
```

also I want to change this two mappings to use this func

``` vim
nnoremap <silent> [Window]x  :<C-u>call <SID>BufferEmpty()<CR>
```
