Запустить Emacs в оболочке при запуске из оболочки

Недавно я начал использовать Emacs в качестве основного редактора. Есть одна вещь, которая меня беспокоит: когда я запускаю Emacs в своей оболочке, он запускает Emacs в новом окне. Я хочу, чтобы он запускался в оболочке, если он вызывается оболочкой, и в новом окне, когда он вызывается из рабочей области.

Может ли это быть достигнуто какой-то конфигурацией, которую я пропустил, или это какая-то шепелявость?

Я использую Manjaro с Xfce и fish-shell (http://fishshell.com/)

С уважением, Робин


person robotroll    schedule 23.08.2013    source источник
comment
Вы имеете в виду как emacs -nw?   -  person jlahd    schedule 23.08.2013
comment
Спасибо, jlahd, я не знал emacs -nw. Есть ли способ автоматически вызывать emacs с -nw при запуске в оболочке?   -  person robotroll    schedule 23.08.2013
comment
Вероятно, вам следует создать псевдоним для этого в вашей оболочке, например. alias em "emacs -nw". После этого, говоря em в оболочке, запускается emacs -nw.   -  person jlahd    schedule 23.08.2013


Ответы (2)


Итак, есть решение для псевдонима, но я сталкиваюсь с тем, что иногда я заставляю emacs спать с помощью Ctrl-z, а затем я забываю, что у меня запущен сеанс emacs, поэтому я снова использую свой псевдоним, и в итоге я получаю два emacs в терминале, что меня раздражает. Поэтому я использую функцию, которая проверяет, запущен ли уже emacs:

cemacs () {
if (ps|grep emacs); then
   echo  "Hey, emacs is already running";       
   fg %emacs
else 
    emacs -nw $@
fi
}

Ярлык

Я определил удобный ярлык для восстановления спящего emacs:

bind -x '"\C-x\C-e":fg %emacs' 

Emacs-сервер

Так что это то, что я использовал довольно долго, и это не идеально. Я не могу запустить обычный emacs, а затем и свою функцию, если только я не использую сервер emacs: http://wikemacs.org/index.php/Emacs_server

Просто создайте псевдоним для emacsclient -t.

и режим оболочки

Но теперь я предпочитаю использовать терминал внутри emacs (так удобно перемещаться по буферу оболочки, копировать-вставлять без мыши, искать строку, переходить к началу вывода, манипулировать файлами с диредом,…).

person Ehvince    schedule 23.08.2013

Хорошая идея !

Я только что обновил свой .bashrc :

edit_file_in_emacs_console() {
    emacsclient -t $@ || emacs -q -nw $@
}

if [ "$PS1" ]; then
    alias emacs=edit_file_in_emacs_console
fi

Поэтому я использую текущий сервер emacs, если он доступен, или простую консоль emacs (-q) для более быстрого запуска.

person fredz    schedule 30.08.2013