Режим оболочки Emacs - это простой терминал, который просто обменивается строками с оболочкой; он не позволяет использовать escape-последовательности терминала, подобные тем, которые устанавливают цвета. Если вам нужен полный терминал в emacs, используйте
M-x term
. (После этого вы можете выйти из него с помощью Cc k
; term
захватывает все обычные ключи, так как это полноценный эмулятор терминала.)
EDIT: предложение использовать термин
стоит, но кажется, что shell-mode
действительно допускает цвета, а ls
каким-то образом отказывается признать этот факт.