Как использовать один экземпляр emacs в качестве текстового редактора по умолчанию?[Linux] - PullRequest
10 голосов
/ 16 декабря 2010

Чего я хотел бы добиться

  • одного экземпляра emacs
  • если я открою любой текстовый файл из nautilus, он должен открыться в текущем emacsэкземпляр
  • если я закрою emacs, он не должен действительно закрывать его, просто скрыть его

То, что у меня есть в настоящее время

  • Я установил emacs23 для запуска при запуске
  • У меня (start-server) в моем init
  • Я оставляю emacs открытым
  • У меня emacsclient в качестве текстового редактора по умолчанию

Проблемы, с которыми я столкнулся при попытке достичь желаемого

  • emacs выдает следующую ошибку, если я завершаю работу с emacs и пытаюсь запустить его снова

Ошибка файла: Невозможно привязать сокет сервера, адрес уже используется

То, что я пробовал

Обновление: я попробовал agaсо ссылкой на стек-поток, и теперь большая ее часть работает.Однако кое-что, что я хотел бы сделать, это перезагрузить файл инициализации, чтобы я мог вносить изменения в мой файл инициализации без перезагрузки компьютера.Любые идеи?

Кроме того, если сервер работает, и у меня есть emacs false-closed (см. Ссылку на emacs fu), как я могу запустить его снова без загрузки файла?например, что будет эквивалентно запуску emacs23, так как это не работает (см. ошибку, написанную выше)

Ответы [ 4 ]

21 голосов
/ 16 декабря 2010
  • удалить (start-server) из .emacs
  • использовать emacsclient "$@" -a "" для запуска emacs, независимо от того, запущен он или нет

Если вы сохраните emacsclient "$@" -a "" какнапример, в файле editor, тогда editor -c создает новый кадр, editor -t открывает новый кадр в терминале, а editor FILE посещает FILE в существующем кадре.Он запускает сервер Emacs, если он не работает.

3 голосов
/ 16 декабря 2010

Я запускаю emacs с emacs --daemon, чтобы emacs запускался в демонизированном режиме.Затем я установил бы для EDITOR значение emacsclient -t -a emacs -nw, которое открывает новый терминал emacs, присоединенный к вашему демону emacs, с версией emacs «без окон», используемой в качестве альтернативы, если не запущен сервер emacs.Для открытия окон emacs в графическом интерфейсе I команда редактора emacsclient -n -c -a emacs.

Также возможно запустить более одного экземпляра emacs на одном компьютере, если вы не хотите, чтобы буферы из одного проекта смешивались с буферами из другого проекта.Смотрите мой мой пост на эту тему.

1 голос
/ 27 января 2011

Хм, не уверен насчет запуска emacs в качестве клиента, но я часто пересматриваю и применяю изменения к моему файлу .emacs, не закрывая emacs.

Простое редактирование файла (внутри или вне emacs это не так.Неважно, какой)Загрузочный файл Mx, emacs попросит вас указать путь и имя файла, что легко, если он ~ / .emacs.

Введите путь и имя файла, тогда RET и emacs перезагрузятся с вашими изменениями.Все буферы, которые у вас были открыты, все еще будут там.

1 голос
/ 16 декабря 2010

Однако я хотел бы перезагрузить файл инициализации, чтобы я мог вносить изменения в файл инициализации без перезагрузки компьютера.

Чтение черезметоды, стоящие за демоном-эффектом, который вы ищете, похоже, что ни один из них не препятствует простой загрузке вашего файла инициализации и выполнению вызова eval-buffer после внесения изменений.запущен и у меня emacs false-closed (см. ссылку на emacs fu), как я могу запустить его снова без загрузки файла?

Запуск emacsclient (вместо emacs23) должен сделатьтрюк, я бы подумал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...