# mc alike mode (single column) # you may also consider setting an alias for automatically splitting windows in tmux # (e.g. "alias mc='tmux split -h lf; lf'") #set ratios 1 #set nopreview #set showinfo size # leave some space at the top and the bottom of the screen set scrolloff 10 # mappings for pager and editor (change as you like) map i $less "$f" map e $vim "$f" # mapping to spawn a shell in current directory map S $$SHELL # use enter for shell commands map read-shell # execute current file (must be executable) map x $"$f" map X !"$f" # dedicated keys for file opener actions map o &mimeopen "$f" map m !mimeopen --ask "$f" # `open-file` is called by `open` when current file is not a directory # you may want to use either file extensions or mime types with `file` # below uses an editor for text files and a file opener for the rest cmd open-file ${{ case $(file --mime-type "$f" -b) in text/*) IFS=':'; vim $fx;; *) IFS=':'; for f in $fx; do xdg-open "$f" &> /dev/null & done;; esac }} # rename current file without overwrite cmd rename $[ -e "$1" ] || mv "$f" "$1" # show disk usage cmd usage $du -h . | less # make sure trash folder exists $mkdir -p $HOME/.trash # move current file or selected files to trash folder # see 'man mv' or 'mv --help' for backup options cmd trash $IFS=':'; mv --backup=numbered $fx $HOME/.trash # here be dragons #map dD trash # common directories map gh cd ~ map gr cd / # easily toggle options map zp set preview! map zh set hidden! # easily select what information to show map zn set showinfo none map zs set showinfo size map zt set showinfo time # sort files and show the corresponding info map sn :set sortby name; set showinfo none; map ss :set sortby size; set showinfo size; map st :set sortby time; set showinfo time; # sets internal field seperator (IFS) to ':' # useful for interactive use to automatically split file names in $fs and $fx # things may behave unexpectedly so use with caution #set ifs ':' # extract the current file with the right command # xkcd link: https://xkcd.com/1168/ cmd extract ${{ case "$f" in *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf "$f";; *.tar.gz|*.tgz) tar xzvf "$f";; *.tar.xz|*.txz) tar xJvf "$f";; *.zip) unzip "$f";; *.rar) unrar x "$f";; *.7z) 7z x "$f";; esac }} # compress selected files with tar and gunzip # takes the name without '.tar.gz' suffix as an argument # (e.g. "compress foo" creates "foo.tar.gz") cmd compress ${{ mkdir "$1" IFS=':'; cp $fs "$1" tar czvf "$1.tar.gz" "$1" rm -rf "$1" }}