2015-01-13 59 views
0

是否有如下命令或函數:execute允許您將文本發送到Vim cmdline但實際上並未執行它?我想將光標留在cmdline的末尾。我已經瀏覽了半個小時的幫助文檔,找不到任何東西。非執行版本:execute

回答

2

這取決於如何觸發。如果是通過映射,你可以簡單地使用:help :map-expr

fun! MyText() 
    return (localtime() % 2 ? ':echo ' : ':echomsg ') 
endfun 
:nnoremap <expr> <Leader>e MyText() 

品(即通過自定義命令或:autocmd),您必須使用feedkeys()功能將鍵入的字符插入Vim的輸入事件循環:

:command! MyText call feedkeys(MyText(), 'n') 

不能只使用:normal,因爲假定完整的命令,如果它是不完整的將中止。

+0

完美的工作,謝謝!我最終添加的映射用於全局搜索:'nnoremap t':vim'。展開(「」)。 '*'。 。展開('%:e')。 '**/*'。 。展開('%:e') ' – Steve