Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
terminal [2004-10-30 01:20]
192.168.1.192
terminal [2019-03-31 23:22]
54.149.212.194
Line 1: Line 1:
-===== Terminal Manipulations =====+====== Terminal Manipulations ======
  
-==== Basics ====+===== Basics ====
 +APLFA
  
 +===== Extras =====
  
 +''screen'' is flexible about flow control.  Traditionally, some terminals
 +do flow control in-band, using ''^S'' when they want to stop the flow data
 +and ''^Q'' when they want it to resume.  On the other hand, some programs
 +(such as ''emacs'') use those keys for other purposes.  If flow control is
 +turned on in ''screen'', ''^S'' will stop ''screen'' from sending anything
 +more to your terminal and ''^Q'' will resume.  Turning flow control off
 +allows those characters to pass through to your programs.  The default
 +setting is "auto", which attempts to determine if flow control is needed
 +or not.  ''screen'' is generally pretty good at figuring this out.
  
-==== Extras ====+''screen'' can deal with multiple character sets and character encodings.  The 
 +''[[commands:encoding]]'' and ''[[commands:defencoding]]'' commands can be used to set window 
 +encodings or override the detected terminal encoding.  If the display'
 +and window's encodings differ, ''screen'' will translate between the two. 
 +Characters not in the display's charset are represented by question marks. 
 +''screen'' does its own encoding and only supports a handful of encodings.  As 
 +of version 4.0.2, those are: C, eucJP, SJIS, eucKR, eucCN, Big5, KOI8-R, 
 +CP1251, UTF-8, ISO8859-2, ISO8859-3, ISO8859-4, ISO8859-5, ISO8859-6, 
 +ISO8859-7, ISO8859-8, ISO8859-9, ISO8859-10, ISO8859-15, jis, and GBK. 
 +[//This somehow ties in with the ''[[commands:charset]]'' setting, but I don'
 +understand that one.  <PMG>//]
  
-screen is flexible about flow control.  Traditionallysome terminals do +You can alter various aspects of screen's use of termcap and terminfovia 
-flow control in-bandusing ^S when they want to stop the flow data and ^Q +the ''[[commands:termcap]]''''[[commands:terminfo]]'', and 
-when they want it to resume.  On the other handsome programs (such as +''[[commands:termcapinfo]]'' commands.  All three have the same syntax. 
-emacs) use those keys for other purposes.  If flow control is turned on in +Using ''[[commands:termcapinfo]]'' is recommended, since that affects both 
-screen, ^S will stop screen from sending anything more to your terminal +termcap and terminfo settings.  Note that all three require the use of 
-and ^Q will resume.  Turning flow control off allows those characters to +termcap names; terminfo-style long names are not supported.  The most 
-pass through to your programs.  The default setting is "auto"which +common use of these commands is to change how ''screen'' treats display 
-attempts to determine if flow control is needed or not.  screen is +terminals.  If you want to change a termcap setting forsay, xterms, you 
-generally pretty good at figuring this out.+can use the ''[[commands:termcapinfo]]'' command to change the termcap 
 +definition that ''screen'' uses for that terminal type.  This affects only 
 +''screen''and can be used to effect changes when you don't want to or 
 +can't change the system terminal definitions.  There are also several 
 +[[man:special terminal capabilities]] that are ''screen''-specific.  See 
 +the "Examples" section below for specific examples.  The other use is to change 
 +the terminal capabilities of ''screen'''s virtual terminal.  This can be 
 +useful to alter how other programs interact with ''screen''without 
 +having to edit ''screen'''s source code and recompile.  [//This is ugly. 
 +I need to rewrite it to make it clearer <PMG>//]
  
 +Some programs use ANSI escape sequences to print data; this was originally used in the days when serial terminals were common, and a terminal might have a printer directly attached to it.  Any sequence starting with ''<esc>[5i'' and ending with ''<esc>\'' would cause the data between the two escape sequences to be printed.  ''screen'' supports this behavior in two ways: if the display terminal has the ''po'' and ''pf'' termcap entries (indicating that it understands printing escapes), ''screen'' will pass any print requests through to the display terminal.  Alternately, you can use the ''[[commands:printcmd]]'' command to define a program to which ''screen'' will send any print jobs.
  
 +===== Keybindings =====
  
-==== Command Line ====+  * ''C-a C-b'' - (''[[commands:break]]'') Sends a break signal to the current window. 
 +  * ''C-a B'' - (''[[commands:pow_break]]'') Closes and reopens the terminal and sends a break signal. 
 +  * ''C-a f'' - (''[[commands:flow]]'') Toggle flow setting between on, off, and auto. 
 +  * ''C-a q'' - (''[[commands:xon]]'') Sends an XON (^Q) to the current window. 
 +  * ''C-a r'' - (''[[commands:wrap]]'') Toggle the current window's line-wrap setting. 
 +  * ''C-a S'' - (''[[commands:xoff]]'') Sends an XOFF (^S) to the current window. 
 +  * ''C-a Z'' - (''[[commands:reset]]'') Reset the window's terminal settings to its defaults. 
 +  * ''C-a .'' - (''[[commands:dumptermcap]]'') Write out a .termcap file.
  
-  * ''-a'' - "include all capabilities (with some minor exceptions) in each window's termcap, even if screen must redraw parts of the display in order to implement a function." 
-  * ''-A'' - Resize windows to fit the current terminal.  Only effective if screen would otherwise try to resize your terminal to fit the windows. 
-  * ''-f'', ''-fn'', ''-fa'' - Respectively, set flow control on, off, or automatic.  Same as ''defflow''. 
-  * ''-O'' - "selects a more optimal output mode for your terminal rather than true VT100 emulation (only affects auto-margin terminals without 'LP').  This can also be set in your .screenrc by specifying 'OP' in a ''termcap'' command." 
-  * ''-U'' - Run screen in UTF-8 mode.  screen assumes that it can output UTF-8 (normally it checks locale settings) and sets ''defutf8 on''. 
  
 +===== Commands =====
  
-==== Keybindings ====+  * ''[[commands:allpartial]]'' - Global command equivalent to setting ''[[commands:partial]]'' for all current windows. 
 +  * ''[[commands:altscreen]]'' - Enables "alternate screen" support (''ti'' and ''te'' termcap settings) for ''screen'' windows. 
 +  * ''[[commands:bce]]'' - Sets or toggle background-color-erase setting. 
 +  * ''[[commands:breaktype]]'' - Currently a synonym for ''[[commands:defbreaktype]]'' 
 +  * ''[[commands:c1]]'' - Sets or toggles c1 code processing. 
 +  * ''[[commands:charset]]'' - Change the current character set slot designation and charset mapping. 
 +  * ''[[commands:defbce]]'' - Same as ''[[commands:bce]]'', but sets the default setting for new windows. 
 +  * ''[[commands:defbreaktype]]'' - Sets the type of break signal sent via the ''[[commands:break]]'' or ''[[commands:pow_break]]'' command. 
 +  * ''[[commands:defc1]]'' - Same as ''[[commands:c1]]'', but sets the default setting for new windows. 
 +  * ''[[commands:defcharset]]'' - Same as ''[[commands:charset]]'', but sets the default setting for new windows. 
 +  * ''[[commands:defflow]]'' - Same as ''[[commands:flow]]'', but sets the default setting for new windows. 
 +  * ''[[commands:defgr]]'' - Same as ''[[commands:gr]]'', but sets the default setting for new windows. 
 +  * ''[[commands:defencoding]]'' - Same as ''[[commands:encoding]]'', but sets the default setting for new windows. 
 +  * ''[[commands:defnonblock]]'' - Same as ''[[commands:nonblock]]'', but sets the default setting for new displays. 
 +  * ''[[commands:defutf8]]'' - Same as ''[[commands:utf8]]'', but sets the default setting for new windows. 
 +  * ''[[commands:defwrap]]'' - Same as ''[[commands:wrap]]'', but sets the default setting for new windows. 
 +  * ''[[commands:dinfo]]'' - Shows what settings ''screen'' is using for the current display. 
 +  * ''[[commands:dumptermcap]]'' - Tells ''screen'' to create a .termcap file in its socket directory. 
 +  * ''[[commands:encoding]]'' - Sets the character encoding for the current window. 
 +  * ''[[commands:flow]]'' - Sets the current window's flow control mode. 
 +  * ''[[commands:gr]]'' - Sets or toggles GR charset switching. 
 +  * ''[[commands:nonblock]]'' - Sets or toggles ''screen'''s behavior when a display stops receiving characters. 
 +  * ''[[commands:partial]]'' - Sets whether ''screen'' should draw the entire window when switching windows. 
 +  * ''[[commands:printcmd]]'' - Shows or sets the command used for handling the ANSI print sequence ''ESC [ 5 i''
 +  * ''[[commands:reset]]'' - Resets the current window's virtual terminal settings to their default settings. 
 +  * ''[[commands:term]]'' - Changes the value of $TERM that screen passes to its windows' child processes. 
 +  * ''[[commands:termcap]]'', ''[[commands:terminfo]]'', and ''[[commands:termcapinfo]]'' - Tweak termcap and/or terminfo entries for either ''screen'''s interaction with the display terminal or for the virtual terminal presented to child programs. 
 +  * ''[[commands:utf8]]'' - Changes or toggles the encoding on the current window. 
 +  * ''[[commands:wrap]]'' - Sets or toggles the current window's line wrap setting. 
 +  * ''[[commands:xoff]]'' - Sends an XOFF (''^S'') to the current window. 
 +  * ''[[commands:xon]]'' - Sends an XON (''^Q'') to the current window. 
 +  * ''[[commands:zmodem]]'' - Sets ''screen'''s handling of zmodem communcations.
  
-  * ''C-a C-b'' - (''break'') Sends a break signal to the current window. +===== Examples =====
-  * ''C-a B'' - (''pow_break'') Closes and reopens the terminal and sends a break signal. +
-  * ''C-a f'' - (''flow'') Toggle flow setting between on, off, and auto. +
-  * ''C-a q'' - (''xon'') Sends an XON (^Q) to the current window. +
-  * ''C-a r'' - (''wrap'') Toggle the current window's line-wrap setting. +
-  * ''C-a S'' - (''xoff'') Sends an XOFF (^S) to the current window. +
-  * ''C-a W'' - (''width'') Toggle terminal between 80 and 132 columns. +
-  * ''C-a Z'' - (''reset'') Reset the window's terminal settings to its defaults. +
-  * ''C-a .'' - (''dumptermcap'') Write out a .termcap file.+
  
 +Upon being asked to print a block of text, save it to a file in the user's home directory:
  
-==== Commands ====+<code> 
 +printcmd "cat > ${HOME}/screenprint" 
 +</code>
  
-  * ''allpartial on|off'' - Global command equivalent to setting ''partial'' for all current windows.  Default is off. +Upon being asked to print block of textprint it via ''lpr'':
-  * ''altscreen on|off'' - Enables "alternate screen" support (''ti'' and ''te'' termcap settings) for screen windows.  Does not change existing windows.  Default is off. +
-  * ''bce [on|off]'' - Set or toggle background-color-erase setting.  "If ''bce'' is set to on, all characters cleared by an erase/insert/scroll/clear operation will be displayed in the current background color.  Otherwise the default background color is used."  Most noticeable when your terminal's "default" background is different from the current background color, such as an xterm with background image.  [//What's the default setting?  <PMG>//+
-  * ''c1 [on|off]'' - Sets or toggles c1 code processing.  If on, characters with the high bit set will be treated as an ESC followed by the corresponding 7-bit character.  Default is off. +
-  * ''charset //set//'' - "Change the current character set slot designation and charset mapping.  The first four character of //set// are treated as charset designators while the fifth and sixth character must be in range 0 to 3 and set the GL/GR charset mapping.  On every position a '.' may be used to indicate that the corresponding charset/mapping should not be changed (//set// is padded to six characters internally by appending '.' chars).  New windows have ''BBBB02'' as default charsetunless an ''encoding'' command is active."  [//I don't really understand this.  It's obviously terminal charset munging, but I don't get the particulars--I just use UTF-8.  <PMG>//+
-  * ''defbce on|off'' - Same as ''bce'', but sets the default setting for new windows. +
-  * ''defbreaktype [tcsendbreak|TIOCSBRK|TCSBRK]'' - Sets the type of break signal sent via the ''break'' or ''pow_break'' command.  Recommended settings are tcsendbreak and TIOCSBRK.  TCSBRK blocks the whole session, but may be the only way to get long breaks.  [//The man page is somewhat light on detail here.  Clarifications appreciated.  <PMG>//+
-  * ''defc1 on|off'' - Same as ''c1'', but sets the default setting for new windows. +
-  * ''defcharset [//set//]'' - Same as ''charset'', but sets the default setting for new windows. +
-  * ''defflow on|off|auto [interrupt]'' - Same as ''flow'', but sets the default setting for new windows. +
-  * ''defgr on|off'' - Same as ''gr'', but sets the default setting for new windows. +
-  * ''defencoding //enc//'' - Same as ''encoding'', but sets the default setting for new windows. +
-  * ''defnonblock on|off|//numsecs//'' - Same as ''nonblock''. but sets the default setting for new windows. +
-  * ''defutf8 on|off'' - Same as ''utf8'', but sets the default setting for new windows.+
  
-terminal (allpartialaltscreenbcec1charsetdefbcedefbreaktype, +<code> 
-defc1defcharsetdefflowdefgrdefencodingdefnonblockdefutf8, +printcmd lpr 
-defwrapdumptermcapencodingflowgrnonblockdinfopartial, +</code> 
-printcmdresettermtermcapterminfotermcapinfoutf8wrapzmodem)+ 
 +Set the ''LP'' capability (the last screen position can be updated) and 
 +remove the ''hs'' capability (presence of a hardstatus line) from 
 +terminals that start with "xterm": 
 + 
 +<code> 
 +termcap xterm* LP:hs@ 
 +</code> 
 + 
 +On VT102s and VT220s, set the escape characters to enter (''Z0'') and exit 
 +(''Z1'') 132-column mode: 
 + 
 +<code> 
 +termcap vt102|vt220 Z0=\E[?3h:Z1=\E[?3l 
 +</code> 
 + 
 +Add function key labels to the termcap entries for screen's virtual 
 +terminal.  For purposes of modifying the windows' termcap entries, the 
 +term-type specified doesn't matter: 
 + 
 +<code> 
 +termcap vt100 "" l0=PF1:l1=PF2:l2=PF3:l3=PF4 
 +</code> 
 + 
 +Abuse ''screen'''s hardstatus support to put things in xterm titlebars. 
 +This tells ''screen'' that ''xterm''(and related terminals) have a 
 +hardstatus line (''hs'') and sets the escape sequences for entering 
 +(''ts'') and leaving (''fs'') the hardstatus to the sequences for entering 
 +and leaving the titlebar.  To go with thatuses 
 +''[[commands:defhstatus]]'' to set a default message and 
 +''[[commands:hardstatus]] off'' to tell ''screen'' not to use the 
 +hardstatus line for ''screen'' messages: 
 + 
 +<code> 
 +termcapinfo xterm*|rxvt|gnome-terminal|konsole|kterm|Eterm 'hs:ts=\E]0;:fs=\007' 
 +defhstatus "screen ^E (^Et) | $USER@^EH" 
 +hardstatus off 
 +</code> 
 + 
 +(FAQ) Turns off alternate screen switching in ''xterm''sso that text in 
 +''screen'' will go into the ''xterm'''s scrollback buffer: 
 + 
 +<code> 
 +termcapinfo xterm ti@:te@ 
 +</code> 
 + 
 +Uses ''screen'''s output translation capability (''XC'') to rot-13 all 
 +output.  (Will not work in UTF-8 modeapparently.): 
 + 
 +<code> 
 +termcapinfo * XC=B%,an,AN,bo,BO,cp,CP,dq,DQ,er,ER,fs,FS,gt,GT,hu,HU,iv,IV,jw,JW,kx,KX,ly,LY,mz,MZ,na,NA,ob,OB,pc,PC,qd,QD,re,RE,sf,SF,tg,TG,uh,UH,vi,VI,wj,WJ,xk,XK,yl,YL,zm,ZM 
 +</code>
  
-==== Examples ==== 

User Tools