You can use Ranger (https://github.com/ranger/ranger) which is available on most Linux distros nowadays. It is fully hackable (written in Python). You can change the file association (which command to open which file) by editing ~/.config/ranger/rifle.conf. More details here: https://wiki.archlinux.org/index.php/ranger#File_association