是否有一个命令或函数,如:执行允许您将文本发送到Vim cmdline但实际上并不执行它?我想将光标留在cmdline的末尾。我已经通过帮助文档半小时,找不到任何东西。
答案 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
,因为它假定完整命令,并且如果它不完整则会中止。