执行的非执行版本:执行

时间:2015-01-13 15:46:32

标签: vim

是否有一个命令或函数,如:执行允许您将文本发送到Vim cmdline但实际上并不执行它?我想将光标留在cmdline的末尾。我已经通过帮助文档半小时,找不到任何东西。

1 个答案:

答案 0 :(得分: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,因为它假定完整命令,并且如果它不完整则会中止。