В иксах emacs = emacs, в консоли $emacs = $emacs -nw (Раздельный запуск емакса для иксов и для эмулятора с консолью)

Модератор: /dev/random

vipermagi
Сообщения: 83
ОС: AgiliaLinux

В иксах emacs = emacs, в консоли $emacs = $emacs -nw

Сообщение vipermagi »

Хочется, чтобы в консольном эмуляторе и чистом терминале по комманде $emacs запускался консольный емакс. Как воплотить?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: В иксах emacs = emacs, в консоли $emacs = $emacs -nw

Сообщение sash-kan »

Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
vipermagi
Сообщения: 83
ОС: AgiliaLinux

Re: В иксах emacs = emacs, в консоли $emacs = $emacs -nw

Сообщение vipermagi »

Эх зря я дурак сильно урезал изначальный пост.

Хочется чтобы через .emacs было подобие как в соседней моей теме про цветовые схемы:

Код: Выделить всё

;; Раздельные темы для консоли и иксов
(if window-system
(color-theme-solarized-light) ;; С этой темой emacs будет в X11
(color-theme-comidia)) ;; С этой темой будет, если запущен консольный emacs -nw
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: В иксах emacs = emacs, в консоли $emacs = $emacs -nw

Сообщение deadhead »

Код: Выделить всё

$ grep emacs .bashrc
export EDITOR="emacsclient -t"
export VISUAL="emacsclient -n -c"

не оно?
[x] close
Спасибо сказали:
vipermagi
Сообщения: 83
ОС: AgiliaLinux

Re: В иксах emacs = emacs, в консоли $emacs = $emacs -nw

Сообщение vipermagi »

Нет. Короче нужна строчка elisp'а, прописываемая в ~/.emacs , которая заставит емакс запускаться в режиме -nw, Ну а я её уже всуну в тот шаблон, определяющий тип запуска.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: В иксах emacs = emacs, в консоли $emacs = $emacs -nw

Сообщение watashiwa_daredeska »

Насколько я понимаю, .emacs выполняется, когда emacs уже решил, использует он window-system или текстовый терминал и уже создал фрейм.
Поэтому из .emacs уже невозможно повлиять на этот выбор.
Кроме того, если Вы запускаете emacs из shell в эмуляторе терминала командой emacs, при том, что переменная DISPLAY установлена, из .emacs может быть проблематично определить, что emacs запущен из терминала, а не из меню DE. Можно написать простенький wrapper вокруг emacs, который будет проверять, что stdin/stdout/stderr направлены на tty и запускать emacs -nw в этом случае.
Спасибо сказали:
vipermagi
Сообщения: 83
ОС: AgiliaLinux

Re: В иксах emacs = emacs, в консоли $emacs = $emacs -nw

Сообщение vipermagi »

Ну если не возможно, то ни чего не поделаешь :(

Ещё может кому будет полезно, в некоторых местах советуют в ~/.bashrc писать alias emacs="emacs -nw". Это не верно, кавычки нельзя, только апострофы у меня заработали.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: В иксах emacs = emacs, в консоли $emacs = $emacs -nw

Сообщение sash-kan »

vipermagi писал(а):
12.10.2011 22:21
Это не верно, кавычки нельзя
это не верно, кавычки можно·

vipermagi писал(а):
12.10.2011 22:21
только апострофы у меня заработали
/telepathy mode on
.bashrc сам собой не прочитается·
надо было, например, открыть другое окно x-эмулятора терминала·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
vipermagi
Сообщения: 83
ОС: AgiliaLinux

Re: В иксах emacs = emacs, в консоли $emacs = $emacs -nw

Сообщение vipermagi »

Ну и я естественно открывал другое окно эмулятора. Была даже мысль полностью выйти со всех сессий этим пользователем. Но заменил апострофами, и сработало.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: В иксах emacs = emacs, в консоли $emacs = $emacs -nw

Сообщение sash-kan »

vipermagi писал(а):
13.10.2011 06:35
Ну и я естественно открывал другое окно эмулятора. Была даже мысль полностью выйти со всех сессий этим пользователем. Но заменил апострофами, и сработало.
ну, проведите тест
1. поставьте двойные кавычки
2. запустите новый эмулятор
3. выполните
$ alias emacs
4. вы должны увидеть
alias emacs='emacs -nw'
да-да, вы увидите одинарные кавычки, именно так bash хранит alias-ы в своих внутренностях·
но к способу ввода самой команды alias это отношения не имеет·
5. проверьте работоспособность:
$ emacs

второй тест
1. удалите в существующей сессии существующий alias:
$ unalias emacs
2. создайте alias для текущей сессии:
$ alias emacs="emacs -nw"
3. проверьте работоспособность:
$ emacs
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
vipermagi
Сообщения: 83
ОС: AgiliaLinux

Re: В иксах emacs = emacs, в консоли $emacs = $emacs -nw

Сообщение vipermagi »

Я только что сделал проще(для чистоты эксперимента). Удалил алиас из ~/.bashrc, вышел с сессии эмулятора консоли, создал новую, запустил емакс, и запустился иксовый вариант, закрыл его. Пошёл в ~/.bashrc и возобновил алиас но уже с кавычками, закрыл сессию эмулятора терминала, открыл новую, запустил емакс, и он, вот ведь сволочь же, открыл теперь консольный вариант. Наверно я неспамши тогда чёй-то таки да перепутал.
Спасибо сказали: