X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Ftabs.1.html;h=c3edf76a316ed5c7111e83fbc335aa3332a23aaa;hb=a09e8b13568e210a03ca4ad64e8552c0edea07c5;hp=725f26a12c8e0e32ad3b382a5adfd59bb06b66f4;hpb=2560bc3dae7f4919060c02c91a593566c908091c;p=ncurses.git diff --git a/doc/html/man/tabs.1.html b/doc/html/man/tabs.1.html index 725f26a1..c3edf76a 100644 --- a/doc/html/man/tabs.1.html +++ b/doc/html/man/tabs.1.html @@ -1,6 +1,7 @@ -
- +-tabs(1) tabs(1) +tabs(1) General Commands Manual tabs(1) @@ -55,45 +56,58 @@
The tabs program clears and sets tab-stops on the terminal. This uses - the terminfo clear_all_tabs and set_tab capabilities. If either is + the terminfo clear_all_tabs and set_tab capabilities. If either is absent, tabs is unable to clear/set tab-stops. The terminal should be configured to use hard tabs, e.g., - stty tab0 + stty tab0 Like clear(1), tabs writes to the standard output. You can redirect - the standard output to a file (which prevents tabs from actually chang- - ing the tabstops), and later cat the file to the screen, setting tab- - stops at that point. + the standard output to a file (which prevents tabs from actually + changing the tabstops), and later cat 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 reset program, since the normal initialization sequences do + not ensure that tab-stops are reset.
-Tname - Tell tabs which terminal type to use. If this option is not - given, tabs will use the $TERM environment variable. If that is + Tell tabs which terminal type to use. If this option is not + given, tabs will use the $TERM environment variable. If that is not set, it will use the ansi+tabs entry. - -d 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, + -d 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. - -n This option tells tabs to check the options and run any debugging + -n This option tells tabs to check the options and run any debugging option, but not to modify the terminal settings. -V reports the version of ncurses which was used in this program, and exits. The tabs program processes a single list of tab stops. The last option - to be processed which defines a list is the one that determines the + to be processed which defines a list is the one that determines the list to be processed.
- Use a single number as an option, e.g., "-5" to set tabs at the given - interval (in this case 1, 6, 11, 16, 21, etc.). Tabs are repeated up + Use a single number as an option, e.g., "-5" 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 "-0" to clear all tabs. @@ -102,69 +116,143 @@
- 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 exam- - ple, + 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 + 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 + Use a "+" to treat a number as an increment relative to the previous value, e.g., - tabs 1,+5,+5,+5,+5 + tabs 1,+5,+5,+5,+5 which is equivalent to the 1,6,11,16,21 example.
- X/Open defines several predefined lists of tab stops. + POSIX defines several predefined lists of tab stops. -a Assembler, IBM S/370, first format + 1,10,16,36,72 -a2 Assembler, IBM S/370, second format + 1,10,16,40,72 -c COBOL, normal format + 1,8,12,16,20,55 -c2 COBOL compact format + 1,6,10,14,49 -c3 COBOL compact format extended + 1,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,67 -f FORTRAN + 1,7,11,15,19,23 -p PL/I + 1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61 -s SNOBOL + 1,10,55 -u UNIVAC 1100 Assembler + 1,12,20,44 + + +
+ A few terminals provide the capability for changing their left/right + margins. The tabs program has an option to use this feature: + + +m margin + The effect depends on whether the terminal has the margin + capabilities: + + o If the terminal provides the capability for setting the left + margin, tabs uses this, and adjusts the available width for + tab-stops. + + o If the terminal does not provide the margin capabilities, tabs + imitates the effect, putting the tab stops at the appropriate + place on each line. The terminal's left-margin is not + modified. + + If the margin parameter is omitted, the default is 10. Use +m0 to + reset the left margin, i.e., to the left edge of the terminal's + display. Before setting a left-margin, tabs resets the margin to + reduce problems which might arise on moving the cursor before the + current left-margin. + + When setting or resetting the left-margin, tabs may reset the right- + margin.
- IEEE Std 1003.1/The Open Group Base Specifications Issue 7 + IEEE Std 1003.1/The Open Group Base Specifications Issue 7 (POSIX.1-2008) describes a tabs utility. However - o This standard describes a +m option, to set a terminal's left-mar- - gin. Very few of the entries in the terminal database provide this - capability. + o This standard describes a +m option, to set a terminal's left- + margin. Very few of the entries in the terminal database provide + the smgl (set_left_margin) or smglp (set_left_margin_parm) + capability needed to support the feature. o There is no counterpart in X/Open Curses Issue 7 for this utility, - unlike tput(1). + unlike tput(1). The -d (debug) and -n (no-op) options are extensions not provided by other implementations. - Documentation for other implementations states that there is a limit on - the number of tab stops. While some terminals may not accept an arbi- - trary number of tab stops, this implementation will attempt to set tab - stops up to the right margin of the screen, if the given list happens - to be that long. + A tabs utility appeared in PWB/Unix 1.0 (1977). There was a reduced + version of the tabs utility in Unix 7th edition and in 3BSD (1979). + The latter supported a single "-n" option (to cause the first tab stop + to be set on the left margin). That option is not documented by POSIX. + + The PWB/Unix tabs utility, which was included in System III (1980), + used built-in tables rather than the terminal database, to support a + half-dozen hardcopy terminal (printer) types. It also had built-in + logic to support the left-margin, as well as a feature for copying the + tab settings from a file. + + Later versions of Unix, e.g., SVr4, added support for the terminal + database, but kept the tables to support the printers. In an earlier + development effort, the tab-stop initialization provided by tset (1982) + and incorporated into tput uses the terminal database, + + The +m option was documented in the Base Specifications Issue 5 + (Unix98, 1997), and omitted in Issue 6 (Unix03, 2004) without + documenting the rationale, though an introductory comment "and + optionally adjusts the margin" remains, overlooked in the removal. The + documented tabs utility in Issues 6 and later has no mechanism for + setting margins. The +m option in this implementation differs from the + feature in SVr4 by using terminal capabilities rather than built-in + tables. + + POSIX documents no limits on the number of tab stops. Documentation + for other implementations states that there is a limit on the number of + tab stops (e.g., 20 in PWB/Unix's tabs utility). While some terminals + may not accept an arbitrary number of tab stops, this implementation + will attempt to set tab stops up to the right margin of the screen, if + the given list happens to be that long. + + The Rationale section of the POSIX documentation goes into some detail + about the ways the committee considered redesigning the tabs and tput + utilities, without proposing an improved solution. It comments that + + no known historical version of tabs supports the capability of + setting arbitrary tab stops. + + However, the Explicit Lists described in this manual page were + implemented in PWB/Unix. Those provide the capability of setting + abitrary tab stops.
- tset(1), infocmp(1m), curses(3x), terminfo(5). + infocmp(1m), tset(1), curses(3x), terminfo(5). - This describes ncurses version 6.0 (patch 20170603). + This describes ncurses version 6.3 (patch 20221210). @@ -181,6 +269,7 @@