![写入终端时,获取您正在写入的当前列号](https://linux22.com/image/167194/%E5%86%99%E5%85%A5%E7%BB%88%E7%AB%AF%E6%97%B6%EF%BC%8C%E8%8E%B7%E5%8F%96%E6%82%A8%E6%AD%A3%E5%9C%A8%E5%86%99%E5%85%A5%E7%9A%84%E5%BD%93%E5%89%8D%E5%88%97%E5%8F%B7.png)
在 Node.js 中,我可以使用以下方法获取终端窗口的列数:
const cols = process.stdout.columns;
如果用户在此过程中缩小终端,列数也会缩小,因此您可以process.stdout.columns
在窗口大小调整时重新阅读。
当我写入 stdout 时,我使用process.stdout.write()
,是否有某种方法使用 linux 来确定我正在写入哪个列号?
对于我写的每个字符,我都会跳到一个新列,直到换行或到达终端窗口的末尾?
答案1
“使用linux的某种方式”是什么意思?如果您的终端对“VT102 和 ECMA-48/ISO 6429/ANSI X3.64 终端控制”作出反应,您可能会幸运地打印“光标位置报告 (CPR)”请求:ESC[6n
并读取光标坐标答案ESC[y;xR
“其中 x, y 是光标位置”。
编辑:比照man console_codes