viper.el имеет жестко закодированный для отключения viper в compilation-mode.Как я могу это исправить без изменения исходного файла?
viper
compilation-mode
Если вы действительно хотите это сделать, вы сможете настроить переменную viper-emacs-state-mode-list и удалить compilation-mode.
viper-emacs-state-mode-list
Вы пробовали запустить "M-x viper-mode"? Это то, что я делаю, когда оказываюсь в буфере, в котором он был отключен или, по крайней мере, не включен.