我想将光标更改为块状。
所有应用程序(nano,vi,vim等)都应具有如上图所示的方形光标。
光标是由终端或终端仿真器绘制的,而不是由其中运行的应用程序绘制的。其中一些规定允许用户使用转义序列更改光标的形状或属性。
可以使用cnorm
(普通光标),civis
(光标不可见)或cvvis
(光标非常可见)terminfo功能(例如,使用tput
命令)来独立于终端的类型更改光标形状。但是,它不会给你任何担保,任何的cnorm
或cvvis
将是一个块光标。
要专门影响光标的闪烁性,形状,颜色和行为,必须在每个终端上完成。
在Linux上的x86 PC VGA和帧缓冲虚拟控制台上,可以使用转义序列来控制它,例如:
printf'\ e [?x ; 和; ž C'
最简单的形式:
printf'\ e [?X C'
您定义光标的高度,x
范围从1
(不可见光标)到8(完整块),0
并提供默认值(当前与相同2
)。
所以:
printf '\e[?8c'
将为您提供完整的块状光标。
实际上,这就是tput cvvis
发送的内容(同时tput cnorm
发送\e[0c
和civis
\e[1c
)。
当使用3参数形式时,行为将随基础视频驱动程序而变化。例如,如您的问题所示,获得一种灰色的非闪烁块状光标,您可以这样做:
printf '\e[?81;128;240c'
在PC VGA Linux控制台中。和:
printf '\e[?17;30;254c'
在帧缓冲区Linux控制台中。
现在,这是特定于Linux的,其他终端具有更改光标形状的不同方法。例如xterm
和rxvt
及其派生使用与VT520终端相同的序列来设置光标形状:
printf'\ e [ x q'
其中x
取一个1到6之间的值(来自xterm manual):
颜色可以设置为:
printf'\ e] 12;%s \ a''color '
因此,您可以使用以下命令来实现您的灰色稳定块光标:
printf '\e[2 q\e]12;grey\a'
对于大多数X11终端仿真器,您还可以通过命令行选项将光标属性更改为启动仿真器的命令,也可以通过配置文件或X11资源或菜单来更改光标属性。
例如,对于xterm
,您可以-uc/+uc
供选择下划线光标,-ms
它的颜色,和cursorBlink
,cursorColor
,cursorOffTime
,cursorOnTime
,cursorUnderLine
,alwaysHighlight
资源配置。
并且Ctrl+左键单击上的默认菜单具有打开或关闭闪烁的选项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句