use derived-mode-p to better determine when to use evil mode