Sté*_*las 11
光标由终端或终端仿真器绘制,而不是由其中运行的应用程序绘制。其中一些允许用户使用转义序列更改光标的形状或属性。
可以使用cnorm
(普通光标)、civis
(光标不可见)或cvvis
(光标非常可见)terminfo 功能(例如使用tput
命令)来独立于终端类型更改光标形状。但是,它不向您保证任何cnorm
或cvvis
将是块游标。
要特别影响光标的闪烁度、形状和颜色以及行为,必须在每个终端的基础上完成。
在 x86 PC VGA 和帧缓冲区虚拟控制台上的 Linux 上,可以使用转义序列进行控制,例如:
printf '\e[? X ; Ÿ ; zc '
以最简单的形式:
printf '\e[? X C”
您定义光标的高度,x
范围从1
(不可见光标)到 8(完整块),0
为您提供默认值(当前,与 相同2
)。
所以:
printf '\e[?8c'
Run Code Online (Sandbox Code Playgroud)
会给你一个完整的块光标。
实际上这就是tput cvvis
发送(同时tput cnorm
发送\e[0c
和civis
\e[1c
)。
使用 3 参数形式时,行为将因底层视频驱动程序而异。例如,如您的问题所示,要获得一种灰色的非闪烁块光标,您可以这样做:
printf '\e[?81;128;240c'
Run Code Online (Sandbox Code Playgroud)
在 PC VGA Linux 控制台中。和:
printf '\e[?17;30;254c'
Run Code Online (Sandbox Code Playgroud)
在帧缓冲区 Linux 控制台中。
现在,这是特定于 Linux 的,其他终端有不同的方式来改变光标形状。例如,xterm
和rxvt
和它们的衍生产品使用与 VT520 终端相同的序列来设置光标形状:
printf '\e[ x q'
其中x
取值从 1 到 6(来自xterm 手册):
颜色可以设置为:
printf '\e]12;%s\a' '颜色'
所以你的灰色稳定块光标可以在那里实现:
printf '\e[2 q\e]12;grey\a'
Run Code Online (Sandbox Code Playgroud)
对于大多数 X11 终端仿真器,您还可以通过命令行选项将光标属性更改为启动仿真器的命令或通过配置文件或 X11 资源或菜单。
例如,对于xterm
,您可以-uc/+uc
供选择下划线光标,-ms
它的颜色,和cursorBlink
,cursorColor
,cursorOffTime
,cursorOnTime
,cursorUnderLine
,alwaysHighlight
资源配置。
Ctrl+ 左键单击的默认菜单有一个选项可以打开或关闭闪烁。
归档时间: |
|
查看次数: |
8765 次 |
最近记录: |