Это довольно рудиментарный вопрос, но какова практическая разница между открытием нового файла в отдельном фрейме (make-new-frame) из emacs или открытием файла в экземпляре emacsclient? Я вижу, что если вы работаете через терминал, разница четкая ... но может ли emacsclient дополнительно ограничить список буферов, к которым осуществляется доступ (буферное меню) или ido-mode, к буферам, открытым в этом конкретном экземпляре emacsclient?Emacs - emacsclient или новый кадр?
ответ
Разница между этими двумя ситуациями не отличается, кроме того, что сервер устанавливает некоторое буферное состояние, чтобы включить C-x #
(aka server-edit
).
Вы можете ограничить M-x list-buffers
поведения, как вы просите со следующим советом:
(defadvice list-buffers-noselect (before list-buffers-noselect-limit-to-those-for-emacsclient activate)
"When the current buffer is a being viewed by an emacclient, restrict the buffers to those associated with the emacsclient"
(when (and (null (ad-get-arg 1)) server-buffer-clients)
(let ((blist (delete-dups (reduce 'append
(mapcar (lambda (proc) (process-get proc 'buffers))
server-buffer-clients)))))
(ad-set-arg 1 blist))))
Теперь, когда вы M-x buffer-menu
в буфере посещается emacsclient
, вы видите только другие буфера посещаемых тот же клиент (s). Он работает нормально, когда буфер не посещается emacsclient
.
Я не использую ido
, но я полагаю, что настройка будет аналогичной (если этот совет не работает как есть).
Информация о том, что при запуске emacsclient
буферы, которые открываются, связаны с процессом сервера (его может быть несколько, потому что вы можете открыть один и тот же файл с помощью нескольких вызовов emacsclient
). Клиенты сервера буфера хранятся в локальной переменной буфера server-buffer-clients
.
Чтобы узнать, какие буфера связаны с определенным вызовом emacsclient
, найти способ для этого emacsclient и сделать: (process-get proc 'buffers)
(где proc
это конкретный процесс emacsclient - один из элементов списка, найденный в server-buffer-clients
).
Это все советы.
В emacs 23 нет разницы, пока работает emacsserver. Список буферов будет одинаковым в каждом.
Спасибо - да, похоже, оно в основном правильное, но, похоже, некоторые члены emacs осознают, что клиент обращается к определенному файлу, как указывает Трей ... но спасибо за ваш вклад! – hatmatrix
- 1. Emacs 23, emacsclient arguments?
- 2. Emacs: Получить новый кадр и emacsclient -c для использования установленного размера кадра?
- 3. Как установить фон emacsclient как фон Emacs?
- 4. Сделать emacs никогда не открывать новый кадр
- 5. emacsclient не удалось найти сервер emacs
- 6. удаленных Emacs клиент подключается, но не создает новый кадр в терминале
- 7. Emacs & Emacsclient не та же версия
- 8. Использование emacsclient вместо Emacs - перевод аргументы
- 9. Как запустить два окна/фрейма emacs с emacsclient?
- 10. emacsclient dialog на Windows
- 11. Emacs 23, OS X, multi-tty и emacsclient
- 12. Emacsclient hook on kill
- 13. shell: повторное использование фоновых окон emacsclient при вызове emacsclient
- 14. emacsclient window focus
- 15. Как поместить Emacs в режим редактирования фиксации magit из emacsclient
- 16. Запустить emacsclient без нового фрейма
- 17. Как я могу заставить emacsclient просто открыть окно для существующего демона emacs, не открывая новый файл
- 18. Нелатинский ввод в emacsclient
- 19. Emacs: GUI с emacs --daemon не правильно загружает шрифты
- 20. Новый кадр в ASM
- 21. Emacsclient называют AppleScript не может найти Emacs сервера сокета
- 22. fcitx не работает на emacsclient --create интракадров
- 23. Как я могу запустить emacsclient, максимизированный из командной строки
- 24. команда emacs, чтобы открыть новый экземпляр emacs
- 25. Emacs Magit commit открывает новый клиент Emacs
- 26. Как отобразить новый кадр UITableView?
- 27. emacsclient всегда запускается как консольное приложение
- 28. emacsclient не может загрузить цвет "unpecified-bg"
- 29. Emacs делает фильтр ibuffer за кадр
- 30. Создание или повторное использование существующего фрейма GUI Emacs
Спасибо! Как упоминает Джед, нет никакой разницы при открытии нового фрейма, но приведенный выше совет работает, когда я открываю новый файл с emacsclient -t. Интересно ... Я посмотрю на это для ido-mode и, возможно, ibuffer. Очень признателен! – hatmatrix
Помогли ли вы работать с ido? – tatsuhirosatou