blog-public/content/post/eshell.md
Denis Zheleztsov a5dd73f274 Initial public
Some content was deleted before this project
has been moved to public
2021-10-18 19:45:57 +03:00

2.4 KiB
Raw Permalink Blame History

+++ date = "2018-07-26T16:04:27+03:00" draft = false title = "eshell в качестве шелла" tags = ["emacs", "linux"] comments = true

+++

Я тут подумал: а чей-то я использую в качестве шелла 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

256color

будет красиво

24bit

Это тема 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)".

Ура!