:execute 的非执行版本
A non-executing version of :execute
是否有类似 :execute 的命令或函数允许您将文本发送到 Vim cmdline 但实际上并不执行它?我想让光标留在命令行的末尾。我已经浏览了半小时的帮助文档,找不到任何东西。
这取决于触发方式。如果是通过映射,你可以简单地使用 :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
,因为它假定完整命令,如果它不完整就会中止。
是否有类似 :execute 的命令或函数允许您将文本发送到 Vim cmdline 但实际上并不执行它?我想让光标留在命令行的末尾。我已经浏览了半小时的帮助文档,找不到任何东西。
这取决于触发方式。如果是通过映射,你可以简单地使用 :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
,因为它假定完整命令,如果它不完整就会中止。