ff4ff35918
Red Bear OS is a full fork. All sources must be available from git clone with zero network access. Removed gitignore rules that excluded fetched source trees under recipes/*/source/, local/recipes/kde/*/source/, local/recipes/qt/*/source/, and vendor source trees. Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded. 127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt frameworks, mesa, wayland, DRM drivers, and every other recipe source.
280 lines
14 KiB
HTML
280 lines
14 KiB
HTML
<!--
|
|
****************************************************************************
|
|
* Copyright 2018-2024,2025 Thomas E. Dickey *
|
|
* Copyright 2008-2016,2017 Free Software Foundation, Inc. *
|
|
* *
|
|
* Permission is hereby granted, free of charge, to any person obtaining a *
|
|
* copy of this software and associated documentation files (the *
|
|
* "Software"), to deal in the Software without restriction, including *
|
|
* without limitation the rights to use, copy, modify, merge, publish, *
|
|
* distribute, distribute with modifications, sublicense, and/or sell *
|
|
* copies of the Software, and to permit persons to whom the Software is *
|
|
* furnished to do so, subject to the following conditions: *
|
|
* *
|
|
* The above copyright notice and this permission notice shall be included *
|
|
* in all copies or substantial portions of the Software. *
|
|
* *
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
|
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
|
|
* IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
|
|
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
|
|
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
|
|
* THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
|
* *
|
|
* Except as contained in this notice, the name(s) of the above copyright *
|
|
* holders shall not be used in advertising or otherwise to promote the *
|
|
* sale, use or other dealings in this Software without prior written *
|
|
* authorization. *
|
|
****************************************************************************
|
|
* @Id: tabs.1,v 1.74 2025/08/16 19:11:47 tom Exp @
|
|
-->
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
|
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
|
|
<TITLE>tabs 1 2025-08-16 ncurses 6.6 User commands</TITLE>
|
|
<link rel="author" href="mailto:bug-ncurses@gnu.org">
|
|
|
|
</HEAD>
|
|
<BODY>
|
|
<H1 class="no-header">tabs 1 2025-08-16 ncurses 6.6 User commands</H1>
|
|
<PRE>
|
|
<STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG> User commands <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
|
|
|
|
|
|
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
|
|
<STRONG>tabs</STRONG> - set terminal tab stops
|
|
|
|
|
|
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
|
|
<STRONG>tabs</STRONG> [<EM>options</EM>] [<EM>tabstop-list</EM>]
|
|
|
|
|
|
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
|
|
The <STRONG>tabs</STRONG> program clears and sets tab-stops on the terminal. This uses
|
|
the terminfo <STRONG>clear_all_tabs</STRONG> and <STRONG>set_tab</STRONG> capabilities. If either is
|
|
absent, <STRONG>tabs</STRONG> is unable to clear/set tab-stops. The terminal should be
|
|
configured to use hard tabs, e.g.,
|
|
|
|
stty tab0
|
|
|
|
Like <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>tabs</STRONG> writes to the standard output. You can redirect
|
|
the standard output to a file (which prevents <STRONG>tabs</STRONG> from actually
|
|
changing the tabstops), and later <STRONG>cat</STRONG> the file to the screen, setting
|
|
tabstops at that point.
|
|
|
|
These are hardware tabs, which cannot be queried rapidly by
|
|
applications running in the terminal, if at all. Curses and other
|
|
full-screen applications may use hardware tabs in optimizing their
|
|
output to the terminal. If the hardware tabstops differ from the
|
|
information in the terminal database, the result is unpredictable.
|
|
Before running curses programs, you should either reset tab-stops to
|
|
the standard interval
|
|
|
|
tabs -8
|
|
|
|
or use the <STRONG>reset</STRONG> program, since the normal initialization sequences do
|
|
not ensure that tab-stops are reset.
|
|
|
|
|
|
</PRE><H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
|
|
|
|
</PRE><H3><a name="h3-General-Options">General Options</a></H3><PRE>
|
|
<STRONG>-T</STRONG><EM>name</EM>
|
|
Tell <STRONG>tabs</STRONG> which terminal type to use. If this option is not
|
|
given, <STRONG>tabs</STRONG> will use the <STRONG>$TERM</STRONG> environment variable. If that is
|
|
not set, it will use the <EM>ansi+tabs</EM> entry.
|
|
|
|
<STRONG>-d</STRONG> The debugging option shows a ruler line, followed by two data
|
|
lines. The first data line shows the expected tab-stops marked
|
|
with asterisks. The second data line shows the actual tab-stops,
|
|
marked with asterisks.
|
|
|
|
<STRONG>-n</STRONG> This option tells <STRONG>tabs</STRONG> to check the options and run any debugging
|
|
option, but not to modify the terminal settings.
|
|
|
|
<STRONG>-V</STRONG> reports the version of <EM>ncurses</EM> which was used in this program, and
|
|
exits.
|
|
|
|
The <STRONG>tabs</STRONG> program processes a single list of tab stops. The last option
|
|
to be processed which defines a list is the one that determines the
|
|
list to be processed.
|
|
|
|
|
|
</PRE><H3><a name="h3-Implicit-Lists">Implicit Lists</a></H3><PRE>
|
|
Use a single number as an option, e.g., "<STRONG>-5</STRONG>" to set tabs at the given
|
|
interval (in this case 1, 6, 11, 16, 21, etc.). Tabs are repeated up
|
|
to the right margin of the screen.
|
|
|
|
Use "<STRONG>-0</STRONG>" to clear all tabs.
|
|
|
|
Use "<STRONG>-8</STRONG>" to set tabs to the standard interval.
|
|
|
|
|
|
</PRE><H3><a name="h3-Explicit-Lists">Explicit Lists</a></H3><PRE>
|
|
An explicit list can be defined after the options (this does not use a
|
|
"-"). The values in the list must be in increasing numeric order, and
|
|
greater than zero. They are separated by a comma or a blank, for
|
|
example,
|
|
|
|
tabs 1,6,11,16,21
|
|
tabs 1 6 11 16 21
|
|
|
|
Use a "+" to treat a number as an increment relative to the previous
|
|
value, e.g.,
|
|
|
|
tabs 1,+5,+5,+5,+5
|
|
|
|
which is equivalent to the 1,6,11,16,21 example.
|
|
|
|
|
|
</PRE><H3><a name="h3-Standard-Tab-Stops">Standard Tab Stops</a></H3><PRE>
|
|
POSIX defines several lists of tab stops.
|
|
|
|
<STRONG>-a</STRONG> Assembler, IBM S/370, first format
|
|
1,10,16,36,72
|
|
|
|
<STRONG>-a2</STRONG> Assembler, IBM S/370, second format
|
|
1,10,16,40,72
|
|
|
|
<STRONG>-c</STRONG> COBOL, normal format
|
|
1,8,12,16,20,55
|
|
|
|
<STRONG>-c2</STRONG> COBOL compact format
|
|
1,6,10,14,49
|
|
|
|
<STRONG>-c3</STRONG> COBOL compact format extended
|
|
1,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,67
|
|
|
|
<STRONG>-f</STRONG> FORTRAN
|
|
1,7,11,15,19,23
|
|
|
|
<STRONG>-p</STRONG> PL/I
|
|
1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61
|
|
|
|
<STRONG>-s</STRONG> SNOBOL
|
|
1,10,55
|
|
|
|
<STRONG>-u</STRONG> UNIVAC 1100 Assembler
|
|
1,12,20,44
|
|
|
|
|
|
</PRE><H3><a name="h3-Margins">Margins</a></H3><PRE>
|
|
A few terminals expose a means of changing their left and right
|
|
margins. <STRONG>tabs</STRONG> supports this feature with an option.
|
|
|
|
<STRONG>+m</STRONG> <EM>margin</EM>
|
|
The effect depends on whether the terminal has the margin
|
|
capabilities:
|
|
|
|
<STRONG>o</STRONG> If the terminal provides the capability for setting the left
|
|
margin, <STRONG>tabs</STRONG> uses this, and adjusts the available tab stop
|
|
widths.
|
|
|
|
<STRONG>o</STRONG> If the terminal does not provide the margin capabilities, <STRONG>tabs</STRONG>
|
|
imitates their effect, putting tab stops at appropriate places
|
|
on each line. The terminal's left margin is not modified.
|
|
|
|
If the <EM>margin</EM> parameter is omitted, the default is 10. Use <STRONG>+m0</STRONG> to
|
|
reset the left margin, that is, to make it the left edge of the
|
|
terminal's display. Before setting a left margin, <STRONG>tabs</STRONG> resets the
|
|
margin to reduce problems that might arise from moving the cursor
|
|
to the left of the current left margin.
|
|
|
|
When setting or resetting the left margin, <STRONG>tabs</STRONG> may also reset the
|
|
right margin.
|
|
|
|
|
|
</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
|
|
<EM>/usr/share/tabset</EM>
|
|
tab stop initialization database
|
|
|
|
|
|
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
|
|
IEEE Std 1003.1/The Open Group Base Specifications Issue 7
|
|
(POSIX.1-2008) describes a <EM>tabs</EM> utility. However,
|
|
|
|
<STRONG>o</STRONG> this standard describes a <STRONG>+m</STRONG> option to set a terminal's left
|
|
margin. Very few of the entries in the terminal database provide
|
|
the <STRONG>set_left_margin</STRONG> (<STRONG>smgl</STRONG>) or <STRONG>set_left_margin_parm</STRONG> (<STRONG>smglp</STRONG>)
|
|
capabilities needed to support the feature.
|
|
|
|
<STRONG>o</STRONG> Unlike <EM>tput</EM>, <EM>tabs</EM> has no specification in X/Open Curses Issue 7.
|
|
|
|
The <STRONG>-d</STRONG> (debug) and <STRONG>-n</STRONG> (no-op) options are <EM>ncurses</EM> extensions not
|
|
provided by other implementations.
|
|
|
|
|
|
</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
|
|
A <EM>tabs</EM> utility appeared in PWB/Unix 1.0 (1977). A reduced version
|
|
shipped in Seventh Edition Unix (early 1979) and in 3BSD (later the
|
|
same year); it supported an option "-n" to set the first tab stop at
|
|
the left margin. That option is not specified by POSIX.
|
|
|
|
The PWB/Unix <EM>tabs</EM> utility returned in System III (1980), and used
|
|
built-in tables to support a half-dozen hardcopy terminal (printer)
|
|
types. It also had logic to support setting the left margin, as well
|
|
as a feature for copying the tab settings from a file.
|
|
|
|
Versions of the program in later releases of AT&T Unix, such as SVr4,
|
|
added support for the terminal database, but retained the tables to
|
|
support the printers. By this time, System V <EM>tput</EM> had incorporated the
|
|
tab stop initialization feature of BSD's <EM>tset</EM> from 1982, but employed
|
|
the <EM>terminfo</EM> database to do so.
|
|
|
|
The <STRONG>+m</STRONG> option was documented in the POSIX Base Specifications Issue 5
|
|
(Unix98, 1997), then omitted in Issue 6 (Unix03, 2004) without express
|
|
motivation, though an introductory comment "and optionally adjusts the
|
|
margin" remains, overlooked in the removal. The <EM>tabs</EM> utility
|
|
documented in Issues 6 and later has no mechanism for setting margins.
|
|
The <STRONG>+m</STRONG> option in <EM>ncurses</EM>'s implementation differs from the SVr4 feature
|
|
by using terminal capabilities rather than built-in tables.
|
|
|
|
POSIX documents no limit on the number of tab stops. Other
|
|
implementations impose one; the limit is 20 in PWB/Unix's <EM>tabs</EM> utility.
|
|
While some terminals may not accept an arbitrary number of tab stops,
|
|
<EM>ncurses</EM> attempts to set tab stops up to the right margin if the list
|
|
thereof is sufficiently long.
|
|
|
|
The "Rationale" section of the Issue 6 <EM>tabs</EM> reference page details how
|
|
the committee considered redesigning the <EM>tabs</EM> and <EM>tput</EM> utilities,
|
|
without settling on an improved solution. It claims that
|
|
|
|
no known historical version of <EM>tabs</EM> supports the capability of
|
|
setting arbitrary tab stops.
|
|
|
|
The feature described in subsection "Explicit Lists" above was
|
|
implemented in PWB/Unix, and permitted the setting of arbitrary tab
|
|
stops nevertheless.
|
|
|
|
|
|
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
|
|
<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
|
|
|
|
ncurses 6.6 2025-08-16 <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
|
|
</PRE>
|
|
<div class="nav">
|
|
<ul>
|
|
<li><a href="#h2-NAME">NAME</a></li>
|
|
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
|
|
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
|
|
<li><a href="#h2-OPTIONS">OPTIONS</a>
|
|
<ul>
|
|
<li><a href="#h3-General-Options">General Options</a></li>
|
|
<li><a href="#h3-Implicit-Lists">Implicit Lists</a></li>
|
|
<li><a href="#h3-Explicit-Lists">Explicit Lists</a></li>
|
|
<li><a href="#h3-Standard-Tab-Stops">Standard Tab Stops</a></li>
|
|
<li><a href="#h3-Margins">Margins</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#h2-FILES">FILES</a></li>
|
|
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
|
|
<li><a href="#h2-HISTORY">HISTORY</a></li>
|
|
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
|
|
</ul>
|
|
</div>
|
|
</BODY>
|
|
</HTML>
|