7

Как открыть файл из командной строки bash в уже открытом Emacs вместо нового экземпляра? Когда я печатаю

$ emacs file.txt

он открывает новый экземпляр Emacs вместо открытия файла в существующем экземпляре Emacs. Mac OS X 10.6.8. а также

GNU Emacs 23.4.1 (x86_64-apple-darwin10.8.0, NS apple-appkit-1038.36)

2012-02-27 на beta.macosforge.org

2 ответа2

7

что вы ищете, так это режим сервера emacs. Добавьте эту строку в ваш файл .emacs:

(server-start)

Затем откройте файл с помощью emacsclient:

emacsclient foobar.txt

Посмотрите на эту страницу для получения дополнительной информации.


Чтобы избежать необходимости запуска emacs вручную или установки его в автозапуск, вы можете написать небольшую функцию, которая пытается подключиться к работающему серверу (запустив emacsclient) и, если нет, вместо этого запускает emacs . Добавьте это в файл конфигурации вашей оболочки (например, ~/.bashrc):

emacs(){ 
    emacsclient "$@" 2>/dev/null || /usr/bin/emacs "$@" 
}

Теперь, просто запустив emacs file вы либо запустите сервер, либо подключитесь к существующему экземпляру.

0

Боюсь, я не могу вспомнить, где я нашел следующее решение. Сожалею. Однако, так как он работал оптимально для меня, я добавляю это здесь.

Убедитесь, что ваш .emacs запускает сервер emacs.

(server-start)

Далее в вашем .bashrc определите функцию:

function run_emacs
{
/usr/bin/emacsclient "$1" &
}

и установите переменные среды:

export EDITOR=emacsclient
export ALTERNATE_EDITOR=emacs

Наконец, определите псевдоним:

alias emacs='run_emacs'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .