SLOWLY Node: Top, Up: (EMACS), Next: Brief The SLOWLY library is intended as an aid for people using display terminals at slow speeds. It provides means of limiting redisplay to smaller parts of the screen, and for turning off redisplay for a time while you edit. The library can be used by simply doing MM Load LibrarySLOWLY, and if your terminal is a display operating at 1200 baud or less (or if it isn't known how fast it is) SLOWLY will set up the commands described here. Comments, bugs, and suggestions to RWK@MIT-MC * Menu: * Menu: * Brief:: Brief demo/intro for the merely curious * Commands:: Commands provided by the SLOWLY library * Minibuffer:: Control over minibuffer display * Options:: How to customize SLOWLY from an init file  SLOWLY Node: Brief, Previous: Top, Up: Top, Next: Commands SLOWLY provides an alternate version of the incremental searching comands on C-S and C-R, ^R Edit Quietly on C-X Q, a way to shrink the screen at either the top or the bottom on M-O, and more flexibility in where minibuffers get displayed. For a simple demo of the capabilities, simply load up SLOWLY via MM Load LibrarySLOWLY, then play around with the commands M-O, C-X Q, C-S, C-R, and minibuffers. All the commands document themselves if you do C-?C. If you're on a slow terminal (1200 baud or less), it will set things by itself. If you are not on a slow terminal, you should fake it out by loading via the following in a minibuffer: 1200 f[ ospeed mmLoad LibrarySLOWLY Also, try doing M-1 M-0 M-O, going into a minibuffer via M-altmode, doing: -3UMinibuffer Size and then entering a minibuffer again.  SLOWLY Node: Commands, Previous: Brief, Up: Top, Next: Minibuffer The commands provided are: ^R Set Screen Size This macro limits redisplay to a section of the screen at the top or the bottom. If called without an argument, it will use the same size as last time (or 3 if it hasn't been called before). If given a positive argument, that is taken to be the number of lines to use at the top of the screen. If given a negative argument, it is taken to be the number of lines at the bottom of the screen. If given an argument of 0, it returns to the use of the entire screen. The section of the screen that is in use is (defaultly) delimited by a line of 6 dashes. It is put on M-O by default. ^R Slow Display I-Search This macro is just like EMACS's Incremental Search, except if the search would run off the screen and cause a redisplay, it narrows the screen to use only a few lines at the top (or bottom, but isn't as nice) of the screen to do an incremental search, ala Control-S in bare EMACS. The default size of the window used for the search is 1, but by setting the variable QSlow Search Lines Used similarly to the argument to ^R Set Screen Size, (Positive = # of lines at top of screen, Negative = # of lines at bottom of screen). This is put on C-S by default. ^R Slow Reverse Display I-Search This is the macro that searches in the reverse direction from ^R Slow Display I-Search, but in the same style. This is put on C-R by default. ^R Edit Quietly This macro enters ^R recursively, with redisplay inhibited. While in this macro, C-L has a different meaning: If typed without an argument, once, it allows redisplay. If typed twice, it will clear the screen and redisplay, by calling the prior meaning for C-L. If it is given an argument, it does what the prior meaning for C-L would have done with the argument (usually, clear the screen and choose a new window for the buffer). Thus you can run this macro, edit a while, occasionally getting a fresh picture of what the buffer looks like by typing C-L once, and then exit the mode by typing C-M-C (C-C C-C) or Control-Altmode.  SLOWLY Node: Minibuffer, Previous: Commands, Up: Top, Next: Options SLOWLY provides control over how minibuffers display on your screen. There is a variable QMinibuffer Size which can be set in your init file or via MM Alter Options which specifies how many lines it takes up. If this is made negative, the minibuffer will appear at the bottom of the screen instead of the top. Thus one mode of operation which some people like is to use ^R Set Screen Size to set up to not use the bottom 3 lines of the screen, and set QMinibuffer Size to -3. This will permanently reserve 3 lines at the bottom of the screen for the minibuffer.  SLOWLY Node: Options, Previous: Minibuffer, Up: Top The simplest way to run SLOWLY is to simply load it, and use the default key assignments, etc. Here is what SLOWLY sets up when simply loaded normally, PROVIDED your terminal is no faster than 1200 baud. & Slow Minibuffer -- MM & Minibuffer ^R Slow Display I-Search -- Control-S ^R Slow Display Reverse I-Search -- Control-R ^R Set Screen Size -- Meta-O ^R Quiet Editing -- C-X Q Default Separator "------" Separator in searches Default Separator Separator for minibuffer Default Separator Separator for Small Screen Sizes Default Separator Lines used by searches 1 line, at top of screen Minibuffer size 3 lines Screen Size set by M-O 3 lines If you want SLOWLY to not set up these things unless your terminal is running at 300 baud or slower (ugh!), just put the following in your EMACS init file: 300 M.VSLOWLY Maximum Speed If you don't like the key assignments set up by SLOWLY, you can do them yourself by defining a variable QSLOWLY Setup Hook, before loading SLOWLY. It should be TECO commands to do the key assignments you wish. The line of 6 dashes between Minibuffers, small screens, search windows, and the rest of the screen, can be user-controlled. The default for all of them which don't have one specified for the individual command are controled from the variable QDefault Separator, which can be set using MM Alter Options. If this is set to be the null string (such as is returned by ":i*" ) then a blank line will be what is used to separate. If it is 0, not even a blank line will be used. This is useful in searches where you aren't going to be doing any editing in that mode anyway. To specify the separator for an individual command, do either :i* M.VSlow Search Separator for the search separator, or :i* M.VMinibuffer Separator for the minibuffer separtor. The ^R Set Screen Size separator is always specified by QDefault Separator If you want your init to initially put you in Small Screen Mode, with 15 lines, at the bottom of the screen, you should put the following into your init after loading SLOWLY: -15 m(m.m ^R Set Screen Size) Also, the folowing variables are useful to set: UMinibuffer Size !* size of minibuffer! USlow Search Lines !* # of lines for searches! UShort Display Size !* default (and current) size!