vis —
display non-printable characters in a visual format
  
    | vis | [ -bcfhlMmNnoSstw] [-eextra] [-Ffoldwidth] [file ...] | 
vis is a filter for converting non-printable characters
  into a visual representation. It differs from ‘cat
  -v’ in that the form is unique and invertible. By default, all
  non-graphic characters except space, tab, and newline are encoded. A detailed
  description of the various visual formats is given in
  vis(3).
The options are as follows:
  - -b
- Turns off prepending of backslash before up-arrow control sequences and
      meta characters, and disables the doubling of backslashes. This produces
      output which is neither invertible or precise, but does represent a
      minimum of change to the input. It is similar to
      “cat -v”.
      (VIS_NOSLASH)
- -c
- Request a format which displays a small subset of the non-printable
      characters using C-style backslash sequences.
      (VIS_CSTYLE)
- -eextra
- Also encode characters in extra, per
      svis(3).
- -Ffoldwidth
- Causes visto fold output lines to foldwidth
      columns (default 80), like
      fold(1), except that a hidden
      newline sequence is used, (which is removed when inverting the file back
      to its original form with
      unvis(1)). If the last
      character in the encoded file does not end in a newline, a hidden newline
      sequence is appended to the output. This makes the output usable with
      various editors and other utilities which typically don't work with
      partial lines.
- -f
- Same as -F.
- -h
- Encode using the URI encoding from RFC 1808.
      (VIS_HTTPSTYLE)
- -l
- Mark newlines with the visible sequence
      ‘\$’, followed by the newline.
- -M
- Encode all shell meta characters (implies -S,-w,-g)
      (VIS_META)
- -m
- Encode using the MIME Quoted-Printable encoding from RFC 2045.
      (VIS_MIMESTYLE)
- -N
- Turn on the VIS_NOLOCALEflag which encodes using
      the “C” locale, removing any encoding dependencies caused by
      the current locale settings specified in the environment.
- -n
- Turns off any encoding, except for the fact that backslashes are still
      doubled and hidden newline sequences inserted if
      -for-Fis selected. When
      combined with the-fflag,visbecomes like an invertible version of the
      fold(1) utility. That is, the
      output can be unfolded by running the output through
      unvis(1).
- -o
- Request a format which displays non-printable characters as an octal
      number, \ddd. (VIS_OCTAL)
- -S
- Encode shell meta-characters that are non-white space or glob.
      (VIS_SHELL)
- -s
- Only characters considered unsafe to send to a terminal are encoded. This
      flag allows backspace, bell, and carriage return in addition to the
      default space, tab and newline. (VIS_SAFE)
- -t
- Tabs are also encoded. (VIS_TAB)
- -w
- White space (space-tab-newline) is also encoded.
      (VIS_WHITE)
vis supports multibyte character input. The encoding
  conversion is influenced by the setting of the
  LC_CTYPE environment variable which defines the set of
  characters that can be copied without encoding.
When 8-bit data is present in the input,
    LC_CTYPE must be set to the correct locale or to the
    C locale. If the locales of the data and the conversion are mismatched,
    multibyte character recognition may fail and encoding will be performed
    byte-by-byte instead.
  - LC_CTYPE
- Specify the locale of the input data. Set to C if the input data locale is
      unknown.
Thevis command appears in
  4.4BSD. Multibyte character support was added in
  NetBSD 7.0 and FreeBSD 9.2.