## Advanced Screen Navigation Features

Contents:

- Mark Mode
- Vertical Scrolling
- Searching the Scrollback Buffer
- Bookmarks in the Scrollback Buffer
- Horizontal Scrolling
- Disabling Scrollback
- Viewing and Saving Lost Sessions

> IMPORTANT: The scrollback buffer is controlled by Kermit 95 itself. The Console version of Kermit 95 is NOT designed to be used in a large "virtual console window" with scrollbars, such as some people are accustomed to setting up in Windows NT. But of course you can use the scrollbar in the GUI version of K95.

### Mark Mode

Mark mode gives the keyboard-only user a means of marking and copying text that is normally available only with the mouse. Mark mode lets you to select arbitrary sized portions of text from anywhere within the current screen or the scrollback region. Marked text can be copied, transmitted, or printed.

Each of the mark-mode actions -- copy to clipboard, copy to host, copy to file -- has a Kverb (keyboard verb) associated with it. Marking and copying can be done entirely with keystrokes and no mouse, using the following Kverbs (the default key assignment is shown in parentheses):

`\KMarkStart` (Ctrl-F1)
  First press enters mark mode; second press starts marking text from the current cursor position. Additional presses clear all marked text and start marking text from the current cursor position.

`\KMarkCopyClip` (Ctrl-Gray-Insert)
  Copies all marked text to the Clipboard.

`\KMarkCopyHost` (Ctrl-Shift-Gray-Insert)
  Copies all marked text directly to the host.

`\KMarkCancel` (Ctrl-F2)
  Cancels mark mode without copying anything.

`\KDump` (Alt-p)
  This is the regular \Kdump verb. When invoked during mark mode, i.e. while a selection is active, the selection (marked text) is dumped to the SET PRINTER device or file.

`\Kpaste` (Shift-Gray-Insert)
  Pastes (sends) text from the Clipboard to the host.

You can reassign these verbs to any other keys or key combinations in the normal manner, using the SET KEY command.

While in mark mode all of the scrollback and arrow keyboard verbs are active allowing you to select text a line at a time, a page at a time, or even the entire rollback buffer in one shot.

Here, for example, is a key definition to select all text from the top of the rollback buffer to the bottom of the active screen ("select all"):

      set key \315 \Kmarkstart\Kend\Kmarkstart\Khome

### Vertical Scrolling

Links: [Next] [Index]

The scrollback buffer is easily navigated using the keys to which the Page Up, Page Down, Home, and End functions are assigned. Each function is represented by a "Kverbs" which is in turn assigned to a key combination with a SET TERM KEY command. There are eight vertical scrolling functions:

     Kverb          Action
     \Kdnone         Roll screen down one line
     \Kdnhscn        Roll screen down half of one page
     \Kdnscn         Roll screen down one page (PgDn)
     \Kendscn        Roll screen to the bottom of buffer (End)
     \Khomscn        Roll screen to beginning of buffer (Home)
     \Kupone         Roll screen up one line
     \Kuphscn        Roll screen up half of one page
     \Kupscn         Roll screen up one page (PgUp)

The default assignments for the vertical scrolling features is dependent upon the number of functions assigned to the keyboard being emulated by Kermit 95. For example, the \Kupscn kverb is assigned to the Gray-PgUp key in the DEC VTxxx terminal emulations but it is assigned to the Alt-Shift-Gray-PgUp key combination in most of the others. This is true for the \Kdnscn, \Khomscn, and \Kendscn kverbs as well. The current assignments of the vertical scrolling kverbs are displayed in the SCREEN SCROLL KEYS popup help screen which can be displayed by pressing Alt-H (capital H) twice.

### Searching the Scrollback Buffer

Links: [Next] [Previous] [Index]

With a bit more effort, you can search backwards and forwards in the terminal screen and scrollback buffer, and you can also set and go directly to "bookmarks" or specified lines. These actions are triggered by "Kverbs", which you may assign to keys or key combinations with the SET TERM KEY command or to mouse actions with SET MOUSE BUTTON.

For searching, the Kverbs and default assignments are:

     Kverb        Default Assignment    Action
     \Kbacksrch    Alt-Gray-LeftArrow    Search backward for string
     \Kbacknext    Ctrl-Gray-LeftArrow   Next instance of string backward
     \Kfwdsrch     Alt-Gray-RightArrow   Search forward for string
     \Kfwdnext     Ctrl-Gray-RightArrow  Next instance of string forward

In the search, line breaks are always ignored. For example, if the word "FIND" appears at the end of one line and "ME" appears at the beginning of the next, a search for "FINDME" will succeed.

Case sensitivity (i.e. whether uppercase letters match the corresponding lowercase letters) follow your "SET CASE" setting, which is OFF by default, meaning that string comparisons are NOT case sensitive unless you you tell Kermit 95 to "set case on".

When you execute one of the Search (not Next) Kverbs, you are prompted in the Terminal-screen status line for a string to search for. Type the string -- it can be longer than the input box; if it is, the box will scroll horizontally. You can correct typing mistakes with the Backspace key (delete a character) or Ctrl-U (erase the whole line).

Start the search by pressing the Enter key. If the string is not found, Kermit 95 beeps and the Terminal screen remains where it was.

If the search string is located, the Terminal screen scrolls back to where the string was found, with the string is highlighted in your SET TERMINAL COLOR SELECTION color (normally yellow). In fact, at that point, the string is selected, K-95 enters "mark mode". At this point you can copy or print your selection:

     Kverb            Default Assignment      Action
     \KmarkCopyClip    Ctrl-Gray-Insert        Copy selection to clipboard
     \KmarkCopyHost    Ctrl-Shift-Gray-Insert  Copy selection to host
     \Kdump            Alt-p                   Send selection to SET PRINTER device

or you can use the following keys to modify the selection:

     Left and right arrow keys -- Add or remove characters within the line
     Up and down arrow keys    -- Add or remove lines
     Ctrl-Page Up and Down     -- Add or remove lines
     Page Up and Down          -- Add or remove screens
     Home and End              -- Add or remove to top or bottom of scrollback
     Ctrl-F2 (\KmarkCancel)    -- Cancel selection.

Context-sensitive popup help screens will remind you about these keys in case you forget. Just use Alt-H while in search or selection mode. Notes:

- \KmarkCancel returns to End if search started from end, but leaves the screen where it was otherwise.

- \Kreset (Alt-r) has no effect on scrollback or marking, by design. Use \KmarkCancel (Ctrl-F2) to get out of mark mode.

- The normal mouse copying methods don't work with material selected by a search because the drag event to which they are assigned cancels the selection and begins a new one.

To search for the next occurrence -- forward or backward -- of the same string, use the \Kbacknext or \Kfwdnext verbs (Ctrl-Gray-LeftArrow and -RightArrow by default). These are equivalent to "Find Next" in a search box.

If you give a new Forward Search or Backward Search command, the same string you searched for before is in the input box. If you want to search for a different string this time, use Ctrl-U to erase it, or the Delete key to delete characters from it, and then type in a new one.

### Bookmarks in the Scrollback Buffer

Links: [Next] [Previous] [Index]

You can also place bookmarks in the terminal screen and scrollback buffer, so you can return instantly to the places you have marked. Bookmarks are identified by single digits, 0 through 9, so you can have up to ten of them. By default, there are no bookmarks. This feature, like the search feature, is controlled by Kverbs:

     Kverb        Default Assignment    Action
     \Ksetbook    Alt-Gray-DownArrow    Place bookmark bookmark 0..9 on this line
     \Kgobook     Alt-Gray-UpArrow      Go to bookmark 0..9 in scrollback buffer

When you use either of these Kverbs, you are prompted in the Terminal-screen status line for a bookmark number. Type a digit, 0 through 9, in the little box, and a bookmark with that number is placed (\Ksetbook) or jumped to (\Kgobook). Bookmarks "stick to" lines as they migrate back towards the top of the scrollback buffer. When a line that has bookmark scrolls off the top of the buffer, the bookmark is freed.

Finally you can also tell Kermit 95 to go to a specific line in the scrollback buffer:

     Kverb        Default Assignment    Action
     \Kgoto       Ctrl-Gray-UpArrow     Go to a specific line

You are prompted for a line number in the status line. You can give a positive number, a negative number, or zero:

      positive:  Absolute line number from beginning (Home) of buffer
      negative:  Absolute line number from bottom (End) of buffer
      zero:      Current (bottom) screen

REMINDER: The scrollback buffer keeps 512 screen lines by default. You can change this to anything you like, up to about 2,000,000 lines, depending on the size of your PC's physical memory and available swap space on disk, with the "set terminal scrollback" command, or in the Dialer.

### Horizontal Scrolling

Links: [Next] [Previous] [Index]

Console Version Only -- There is no horizontal scrolling in the GUI

Kermit 95 can scroll not only backwards and forwards (e.g. to view material that has scrolled off the top of the screen), but also right and left. The main benefit of this feature is to let you have a wider screen on the host than you have on your PC. For example, a 132-column session while in fullscreen mode (which supports only 80 columns on most video adapters).

The horizontal scrolling feature allows the "logical width" of the terminal screen to be (say) 132, while the "physical width" is (say) 80 (you can also have a wide command screen). The distinction between the physical and logical screens is governed by the command:

      SET TERMINAL VIDEO-CHANGE { ENABLED, DISABLED }

When VIDEO-CHANGE is ENABLED, Kermit 95 tries to change the size of the physical screen to match the requested logical screen size when the host sends a DECCOLM escape sequence (CSI ? 3 h/l), or when you give a SET TERMINAL WIDTH command at the Kermit 95 prompt. If it can't change the physical screen size (e.g. in a fullscreen session), then the physical and logical screen sizes remain unchanged.

When VIDEO-CHANGE is DISABLED, Kermit 95 responds to screen-size changing commands by changing the size of its "logical" screen, but leaving the physical screen alone. Thus when Kermit 95 is commanded into 132-column mode, material that is to be displayed to the right of the physical screen is placed into the correct position of the logical screen, and you can view it by scrolling the screen horizontally.

Horizontal scrolling is accomplished by the following keyboard verbs:

               Default
    Verb       Assignment                      Description

    \Klfone    Shift-Gray-LeftArrow            Scroll left one column
    \Klfpage   Shift-Alt-Gray-LeftArrow        Scroll left one "page" (8 columns)
    \Klfall    Shift-Alt-Ctrl-Gray-LeftArrow   Scroll all the way left
    \Krtone    Shift-Gray-RightArrow           Scroll right one column
    \Krtpage   Shift-Alt-Gray-RightArrow       Scroll right one "page" (8 columns)
    \Krtall    Shift-Alt-Ctrl-Gray-RightArrow  Scroll all the way right

Kermit 95's "virtual screen" -- as distinct from its physical and logical screens -- is 160 columns wide, and its height is its TERMINAL SCROLLBACK size. Thus \Krtall positions column 160 of the virtual screen at the rightmost column of the physical screen. Repeated pressing of the \Krtpage or \Krtone keys will scroll towards the right of the virtual screen until column 160 is reached, at which point these keys will simply return a warning sound. Similarly, the \Klfpage and \Klfone keys have no effect, other than the warning sound, when column 1 of the logical screen is at column 1 of the physical screen.

The horizontal scrolling status is indicated in the status line (for emulations that have one, and if you haven't turned it off), at the extreme left and right positions. If the leftmost character in the status line is a little square block, that means the screen is scrolled all the way to the left. If there is a left-pointing triangle in this position, it means your screen is scrolled at least 1 column to the right.

If there is a little square block on the right end of your status line, it means that your physical screen width is the same as your logical screen width, and so no material lies hidden to the right of the visible screen.

If there is a little square block on both the right and left ends of the status line, it means your visible screen gives you a complete horizontal view.

If there is a right-pointing triangle on the right end of the status line, it means the rightmost column of the visible screen is less than the rightmost column of the logical screen, and so scrolling right will not reveal any additional material.

If arrows appear at both ends, it means you have scrolled to the right, but not all the way to the right. In other words, your visible screen is somewhere in the middle of the logical screen.

Note that you can issue a command like `SET` `COMMAND` `WIDTH` `132` to set up a 132-column command screen. If you do this, and `SET` `TERM` `VIDEO-CHANGE` is `DISABLED`, then horizontal scrolling works in the Command screen just like it does in the Terminal screen.

### Disabling Scrollback

Links: [Next] [Previous] [Index]

In K95 2.1.3 and later, you can use the `--noscroll` command-line option to disable scrolling when starting Kermit 95, and you can use use the NOSCROLL command to disable scrollback at any time after it has started. Once scrollback is disabled, it can't be re-enabled in the same K95 instance.

### Viewing and Saving Lost Sessions

Links: [Previous] [Index]

Unless you specify otherwise, Kermit 95 generally pops back to the Command Screen automatically when it detects the connection is broken, for example because the remote host crashed, the phone connection was interrupted by call waiting, etc. Attempts to re-`CONNECT` fail because there is no more session to `CONNECT` to. The following commands can be used in this situation:

`VIEW`
  This command gives you "read-only" access to the Terminal screen and its scrollback buffer. You are not allowed to type ordinary characters (since there is nowhere to send them), but you can use Page Up, Page Down, and any other key or mouse actions that do not transmit. So, for example, you can scroll back, select text, and paste it into another window. (HINT: To select more than one screenful of text, use the Page Up/Down keys while holding down the mouse button.)

`SAVE TERMINAL SCROLLBACK filename { NEW, APPEND }`
  Saves the Terminal window's entire scrollback buffer to the given file. Text only, no special effects (highlighting, blinking, etc). Trailing blanks are stripped from each line, and then CRLF appended, to form a normal DOS-Windows-OS/2-format text file.

`SAVE COMMAND SCROLLBACK filename { NEW, APPEND }`
  Saves the Command window's entire scrollback buffer to the given file. Text only, the same format as for `SAVE` `TERMINAL` `SCROLLBACK`

You can also use the mouse to save selected sections of the scrollback buffer. Just select the text you want to save, and paste it to where you want to save it. If the text spans more than one screen, you must use Kermit 95's built-in mouse copy feature for this, not the Windows or OS/2 methods.

Click Back on your Browser's Toolbar to return.