2
是否有可能:map
到可以检测到它被称为 在模式的功能?这是我有:检测一个从普通调用的函数里面的模式:地图
func! s:ShowModeFunction()
echomsg mode(1)
endfunc
noremap <expr> <Plug>ShowMode <SID>ShowModeFunction()
map \m <Plug>ShowMode
地图\m
最终调用顶部函数,它回声一个字符串 指示正常模式下,运营商等待模式,或者任何Visual 模式。
这仅适用于<expr>
中间地图上虽;任何结肠 命令将使最终mode()
电话也没用,因为它会 然后总是返回“正常模式”。不幸的是,<expr>
严格的 需要在右侧的表达式,并且由于函数 不返回任何内容,所以使用隐式返回值0
,其中 将光标移动到第一列。
这并不为我工作,我现在得到一个提示与模式字母,例如。 'V'。至于你的第二个建议 - ':call'命令是不存在的,因为它会使'mode()'总是返回'n'为“正常模式”。 – glts
你的确切例子适合我。由于':echomsg',显示有点乱,但这不是提示,任何命令(如'l'或'i')都会立即执行。尝试用':let g:mode = mode(1)'代替它,无论如何,这更接近实际使用。 –
够公平的,谢谢。我会稍后再解决这个问题。 – glts