Macos 无法通过Mac中的termcap关闭自动边距

Macos 无法通过Mac中的termcap关闭自动边距,macos,terminal,margins,termcap,Macos,Terminal,Margins,Termcap,我需要根据Mac电脑屏幕手册中的以下语句关闭自动边距 如果您的终端为“真” 自动边距终端(不允许 屏幕上的最后一个位置 要更新而不滚动屏幕(考虑使用版本) 你的终端终端的终端 已关闭自动边距 如何通过终端的termcap关闭自动边距?如果我理解正确,您希望将自动换行功能设置为不使用terminfo数据库。如果是这样的话,我相信您可以使用-nam标志来关闭它-类似vt100 nam的东西应该可以做到这一点。您还可以通过查看terminfo的手册页进行检查 如果这解决了你的问题,就把它标记出来。(^

我需要根据Mac电脑屏幕手册中的以下语句关闭自动边距

如果您的终端为“真” 自动边距终端(不允许 屏幕上的最后一个位置 要更新而不滚动屏幕(考虑使用版本) 你的终端终端的终端 已关闭自动边距


如何通过终端的termcap关闭自动边距?

如果我理解正确,您希望将自动换行功能设置为不使用terminfo数据库。如果是这样的话,我相信您可以使用-nam标志来关闭它-类似vt100 nam的东西应该可以做到这一点。您还可以通过查看terminfo的手册页进行检查

如果这解决了你的问题,就把它标记出来。(^u^)如果不是。。。好的,回敬一下,我会再帮你查一查。干杯

更新:还有一个快捷方式可以应用于您切换换行。查看快捷方式表。可以找到屏幕的其他信息(搜索包裹)。您还可以检查如何使用setterm(第17.14节更改终端设置)。还要检查更改设置的示例


祝你好运。(^^)

如果我理解正确,您希望使用terminfo数据库将自动换行功能设置为NO。如果是这样的话,我相信您可以使用-nam标志来关闭它-类似vt100 nam的东西应该可以做到这一点。您还可以通过查看terminfo的手册页进行检查

如果这解决了你的问题,就把它标记出来。(^u^)如果不是。。。好的,回敬一下,我会再帮你查一查。干杯

更新:还有一个快捷方式可以应用于您切换换行。查看快捷方式表。可以找到屏幕的其他信息(搜索包裹)。您还可以检查如何使用setterm(第17.14节更改终端设置)。还要检查更改设置的示例


祝你好运。(^ ^)

大多数终端模拟器,包括mac默认终端,在这里讨论的意义上不是“真正的自动边距终端”——它们模拟vt100系列终端,该终端具有“智能”封装。您可以通过运行
cat
并在最后一行的末尾键入来进行检查-键入最后一个字符后,光标将保持在该行的末尾(高亮显示刚才键入的字符),直到键入另一个字符


“真正的自动边距终端”的唯一后果是字符不能显示在右下角(尽管一些程序可以通过使用
ich
/
ich1
将字符移动到位来解决这个问题)

大多数终端模拟器,包括mac默认终端,都不能显示此处讨论的“真正的自动边距终端”——它们模拟vt100系列终端,该终端具有“智能”环绕功能。您可以通过运行
cat
并在最后一行末尾键入来进行检查——键入最后一个字符后,光标保持在该行的末尾(突出显示刚才键入的字符)直到你输入另一个字符

“真正的自动边距终端机”的唯一后果是字符不能显示在右下角(尽管一些程序可以通过使用
ich
/
ich1
将字符移动到位来解决此问题)

根据要求,此序列应执行以下操作:

CSI ? 7 l
就是

printf '\033[?7l'
7记录如下:

        Ps = 7  -> Wraparound Mode (DECAWM).
最后一个字符
l
(小写l)表示这是重置,而不是设置控件

无论出于何种原因,terminfo的名称更为模糊:“自动边距”。这些terminfo功能处理该功能(请参阅):

有趣的是,ncurses中的终端描述(显然没有人使用)将终端初始化为使用使用以下字符串自动合并边距:

rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, 
(该
\E[?7h
设置它),并通过取消
am
声明终端不使用自动边距。它还具有terminfo功能
rmam
smam
。因此,您可以这样做来证明它工作:

tput rmam
stty columns 999
ps -efwwwwwl
(对于普通用户)请参见
ps
列表,该列表在终端窗口的右边距处被很好地截断

其他变体vt220 nam和vt320 nam显示正确

顺便说一下,对于Mac,您可以使用terminfo名称,例如
rmcup
,而不是termcap
RA
,因为OSX使用的是ncurses的tput(terminfo)而不是BSD变体

进一步阅读:

偶尔有人会询问是否禁止自动换行,因为他们认为终端可以向左/向右平移/滚动,以显示未换行的信息。这样做的终端很少见,OSX终端不是其中之一。它的行为类似于xterm的子集,xterm本身模拟DEC终端vt52/vt系列100/vt220/等。在这个问题中,OP对
屏幕上的这段内容感到担忧/困惑
手册:

如果您的终端是“真”自动边距终端(它不允许 屏幕上的最后一个位置(无需滚动屏幕即可更新) 考虑使用终端的TelMCAP的一个版本,它是自动的。 已关闭页边距。这将确保对 屏幕在任何情况下都能显示。现在大多数终端都有“魔力” 边距(自动边距加上最后一列可用边距)。这是VT100 样式类型,非常适合屏幕。如果你只有一个 “真”自动边距终端屏幕将满足于使用它,但 更新字符集
tput rmam
stty columns 999
ps -efwwwwwl