在命令行模式下显示光标

时间:2016-11-01 14:45:34

标签: vim command-line

当我在正常模式下键入:时,光标变为不可见,当我进行包含函数调用的映射时,光标开始闪烁。即使在命令行模式下,也可以始终显示光标?或者我可以在正常模式下调用函数而无需键入:

1 个答案:

答案 0 :(得分:1)

只有一个光标,因为在终端中,光标是终端功能,每个终端只有一个这样的光标。

我想问的原因是你在编写命令行调用时需要一个当前光标位置的可视指示。

实现这一目标有几种可能性:

永久光标位置突出显示

autocmd VimEnter,WinEnter * match Cursor /\%#./

这通过特殊的:match正则表达式原子定义当前位置的窗口局部\%#

这将适用于所有窗口。确保Cursor突出显示组实际上是可辨别的;不是所有的颜色都有这个。

仅cmdline突出显示

或者,您可以仅在进入命令行模式时启用:

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

当前行和当前列的交集是光标位置。