eshell в качестве шелла
Jul 26, 2018Я тут подумал: а чей-то я использую в качестве шелла zsh, когда можно юзать емаксовый eshell?
Быстренький гайд.
Делай раз
Для начала, чтобы темы отображались правильно нужно сгенерировать terminfo. В 26.1 емаксе можно работать с 24-битным терминалом. Напишем файл terminfo-24.src:
# Use colon separators.
xterm-24bit|xterm with 24-bit direct color mode,
use=xterm-256color,
setb24=\E[48:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%dm,
setf24=\E[38:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%dm,
# Use semicolon separators.
xterm-24bits|xterm with 24-bit direct color mode,
use=xterm-256color,
setb24=\E[48;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
setf24=\E[38;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
Генерируем:
tic -x -o ~/.terminfo terminfo-24bit.src
Экспортируем переменную окружения:
export TERM=xterm-24bit
Теперь при запуске GNU Emacs в терминале(emacs[client] -nw
) вместо покореженных цветов при TERM=xterm-256color
будет красиво
Это тема solarized-dark, кстати.
Делай два
Но запускать Емакс в терминале при наличии иксов несколько странно. По-этому нужно пускать сразу (eshell)
.
В параметрах терминала в качесте комманды прописываем /bin/sh -c "export TERM=xterm-24bit; emacsclient -nw -c -e \"(eshell 'N)\""
и у нас будет сразу пускаться eshell. Неплохо, не правда ли? :)
Либо можно пойти еще дальше и перебиндить стандартнуй комбинацию клавишь на запуск сразу eshell в графическом Emacs.
Так, например, для i3wm: bindsym $mod+Return exec emacsclient -c -e "(eshell 'N)"
.
Ура!