【问题标题】:Vim - change cursor in command lineVim - 在命令行中更改光标
【发布时间】:2020-06-04 17:01:14
【问题描述】:

我正在尝试在输入 Vim 命令行时将光标从块更改为竖线(I-beam)。

我正在尝试使用这个单独的代码:

" with these two codes nothing happens
autocmd CmdlineEnter * let &t_SI
autocmd CmdlineEnter * execute &t_SI

" this last one  produce "E20: Mark not set" error
autocmd CmdlineEnter * execute '!echo -ne "' . &t_SI . '"'

是否有可能,或者 vim 对 cmd 行使用相同的光标,就像在正常模式下使用一样。
我已将正常模式 (&t_EI) 更改为竖线,在这种情况下,光标是 cmd 行中的竖线。

在普通模式下,命令行可以改变光标吗?
有人可以帮忙吗?

【问题讨论】:

    标签: vim


    【解决方案1】:

    我找到了解决方案。
    事实证明,在进入和离开 cmd 行时可以改变光标。

    这段代码会在输入命令行时将光标变为竖线,离开命令行时将光标恢复为块状。

    " vim cursor escape codes for the terminal emulator
    " INSERT (&t_SI)  - vertical bar (I-beam)
    " REPLACE (&t_SR) - underscore
    " VISUAL (&t_EI)  - block
    let &t_SI = "\<Esc>[5 q"
    let &t_SR = "\<Esc>[3 q"
    let &t_EI = "\<Esc>[1 q"
    
    " set cursor to vertical bar when entering cmd line and
    " revert cursor back to block when leaving cmd line
    autocmd CmdlineEnter * execute 'silent !echo -ne "' . &t_SI . '"'
    autocmd CmdlineLeave * execute 'silent !echo -ne "' . &t_EI . '"'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多