当我在正常模式下键入:
时,光标变为不可见,当我进行包含函数调用的映射时,光标开始闪烁。即使在命令行模式下,也可以始终显示光标?或者我可以在正常模式下调用函数而无需键入:
?
答案 0 :(得分:1)
只有一个光标,因为在终端中,光标是终端功能,每个终端只有一个这样的光标。
我想问的原因是你在编写命令行调用时需要一个当前光标位置的可视指示。
实现这一目标有几种可能性:
autocmd VimEnter,WinEnter * match Cursor /\%#./
这通过特殊的:match
正则表达式原子定义当前位置的窗口局部\%#
。
这将适用于所有窗口。确保Cursor
突出显示组实际上是可辨别的;不是所有的颜色都有这个。
或者,您可以仅在进入命令行模式时启用:
function! HighlightCursor( isOn, key )
if a:isOn
match Cursor /\%#./
redraw
else
match
endif
return a:key
endfunction
nnoremap <expr> : HighlightCursor(1, ':')
cnoremap <expr> <CR> HighlightCursor(0, "\<lt>CR>")
:set cursorline cursorcolumn
当前行和当前列的交集是光标位置。