14.1.1.1 Paging Screen Output

When running interactively, Octave normally sends all output directly to the Command Window. However, when using the CLI version of Octave this can create a problem because large volumes of data will stream by before you can read them. In such cases, it is better to use a paging program such as less or more which displays just one screenful at a time. With less (and some versions of more) you can also scan forward and backward, and search for specific items. The pager is enabled by the command more on.

Normally, no output is displayed by the pager until just before Octave is ready to print the top level prompt, or read from the standard input (for example, by using the fscanf or scanf functions). This means that there may be some delay before any output appears on your screen if you have asked Octave to perform a significant amount of work with a single command statement. The function fflush may be used to force output to be sent to the pager (or any other stream) immediately.

You can select the program to run as the pager with the PAGER function, and configure the pager itself with the PAGER_FLAGS function.

 
: more
: more on
: more off

Turn output pagination on or off.

Without an argument, more toggles the current state.

The current state can be determined via page_screen_output.

See also: page_screen_output, page_output_immediately, PAGER, PAGER_FLAGS.

 
: val = PAGER ()
: old_val = PAGER (new_val)
: old_val = PAGER (new_val, "local")

Query or set the internal variable that specifies the program to use to display terminal output on your system.

The default value is normally "less", "more", or "pg", depending on what programs are installed on your system. See Installing Octave.

When called from inside a function with the "local" option, the variable is changed locally for the function and any subroutines it calls. The original variable value is restored when exiting the function.

See also: PAGER_FLAGS, page_output_immediately, more, page_screen_output.

 
: val = PAGER_FLAGS ()
: old_val = PAGER_FLAGS (new_val)
: old_val = PAGER_FLAGS (new_val, "local")

Query or set the internal variable that specifies the options to pass to the pager.

When called from inside a function with the "local" option, the variable is changed locally for the function and any subroutines it calls. The original variable value is restored when exiting the function.

See also: PAGER, more, page_screen_output, page_output_immediately.

 
: val = page_screen_output ()
: old_val = page_screen_output (new_val)
: old_val = page_screen_output (new_val, "local")

Query or set the internal variable that controls whether output intended for the terminal window that is longer than one page is sent through a pager.

This allows you to view one screenful at a time. Some pagers (such as less—see Installing Octave) are also capable of moving backward on the output.

When called from inside a function with the "local" option, the variable is changed locally for the function and any subroutines it calls. The original variable value is restored when exiting the function.

See also: more, page_output_immediately, PAGER, PAGER_FLAGS.

 
: val = page_output_immediately ()
: old_val = page_output_immediately (new_val)
: old_val = page_output_immediately (new_val, "local")

Query or set the internal variable that controls whether Octave sends output to the pager as soon as it is available.

When the value is false, Octave buffers its output and waits until just before the prompt is printed to flush it to the pager. This is the default.

When page_screen_output is false, this variable has no effect.

When called from inside a function with the "local" option, the variable is changed locally for the function and any subroutines it calls. The original variable value is restored when exiting the function.

See also: page_screen_output, more, PAGER, PAGER_FLAGS.

 
: status = fflush (fid)

Flush output to file descriptor fid.

fflush returns 0 on success and an OS dependent error value (−1 on Unix) on error.

Programming Note: Flushing is useful for ensuring that all pending output makes it to the screen before some other event occurs. For example, it is always a good idea to flush the standard output stream before calling input.

See also: fopen, fclose.