Difference between revisions of "Default viewer script"
Jump to navigation
Jump to search
m (Add missing space before open parenthesis) |
(Add usage section) |
||
Line 45: | Line 45: | ||
# Add the following line to your <code>vifmrc</code>:<br><code>fileview * defviewer %c</code> | # Add the following line to your <code>vifmrc</code>:<br><code>fileview * defviewer %c</code> | ||
− | Here is what it looks like: | + | == Usage == |
+ | |||
+ | * In quick view activated via <code>:view</code> command. | ||
+ | * In explore mode activated via <kbd>e</kbd> normal mode key. | ||
+ | |||
+ | Here is what it looks like in explore mode: | ||
[[File:hex-dump-screenshot.png]] | [[File:hex-dump-screenshot.png]] |
Revision as of 18:46, 18 July 2014
Default viewer script
This script can be used to view files for which no viewer is registered. Here is its source code:
#!/bin/bash
if [ "$#" -ne 1 ]; then
echo "Usage: $0 filename"
exit 1
fi
# upper limit of lines to display for text files
nlines=150
# upper limit of bytes to display for binary files
nbytes=2048
# language of text files
language=russian
# output encoding for text files
encoding=utf-8
info=$(head -$nlines "$1" | file --mime -)
charset=${info#*=}
if [ "x$charset" == "xbinary" ]; then
hexdump -e '"%08_ax: "' -e '8/1 "%02x " " " 8/1 "%02x "' -e '" |" 16/1 "%_p"' -e '"\n"' -v -n $nbytes "$1"
else
head -$nlines "$1" | enconv -g -L $language -x $encoding
fi
The script uses:
head
utility to process only first$nlines
of file.file
tool to determine whether file is of binary format or not.hexdump
tool to display binary files in classic hex dump form.enconv
program for automatic conversion to the$encoding
charset for text files trying to guess source encoding of$language
.
Plugging the script into vifm
To use it in vifm:
- Save the script as
defviewer
at one of directories listed in your$PATH
environment variable or under$VIFM/scripts
(most likely that it's~/.vifm/scripts
). - On Unix-like operating systems make the script file executable by running
chmod +x defviewer
- Add the following line to your
vifmrc
:fileview * defviewer %c
Usage
- In quick view activated via
:view
command. - In explore mode activated via e normal mode key.
Here is what it looks like in explore mode: