View a long block of text using an external pager / viewer.  The setting
        of the RTV_PAGER variable will be used if set, otherwise the system's
        default pager is chosen, finally defaulting to 'less' if both RTV_PAGER
        and PAGER is unset in the calling environment.

        The data string will be piped directly to the pager.

def open_pager(self, data, wrap=None):
        """
        View a long block of text using an external pager / viewer.  The setting
        of the RTV_PAGER variable will be used if set, otherwise the system's
        default pager is chosen, finally defaulting to 'less' if both RTV_PAGER
        and PAGER is unset in the calling environment.

        The data string will be piped directly to the pager.
        """

        pager = os.getenv('RTV_PAGER')
        if pager is None:
            pager = os.getenv('PAGER') or 'less'
        command = shlex.split(pager)

        if wrap:
            data_lines = content.Content.wrap_text(data, wrap)
            data = '\n'.join(data_lines)

        try:
            with self.suspend():
                _logger.debug('Running command: %s', command)
                p = subprocess.Popen(command, stdin=subprocess.PIPE)
                try:
                    p.communicate(data.encode('utf-8'))
                except KeyboardInterrupt:
                    p.terminate()
        except OSError as e:
            _logger.exception(e)
            self.show_notification('Could not open pager %s' % pager)