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