2013-09-15 5 views
0

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

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

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

Как бы я это сделал?

Использование Emacs 24.3.1 на Fedora 19 с Gnome 3.8.4

+1

Предполагая, что предположение Basile Starynkevitch является правильным, то ваше описание не совсем верно; вы фактически запускаете несколько экземпляров Emacs (каждый с кадром * single *), вместо того, чтобы открывать новые кадры (что подразумевает один экземпляр). Поскольку каждый из них занимает ~ 5 секунд, чтобы открыть, тогда это * почти наверняка то, что происходит. (Если вы увлечены, вы можете, без сомнения, также сократить время начала до нескольких секунд или около того, используя, по возможности, 'eval-after-load' и автозагрузку. См. Также http://stackoverflow.com/questions/778716/ how-can-i-make-emacs-start-up-faster) – phils

ответ

2

Вы хотите, чтобы начать один единственный экземпляр emacs (который должен начать сервер с помощью (server-start) в вашем ~/.emacs), а затем использовать emacsclient. Вы, вероятно, должны

export EDITOR=emacsclient 

в частности. ваш ~/.bashrc

См. invoking emacsclient (в документации Emacs) и EmacsClient (в Emacs Wiki).

+0

все в порядке, я настроил вещи в режиме разговора, ничего не улучшившись. Мало того, что мои файлы .emacs игнорируются всякий раз, когда я открываю файл (без загрузки настроек скажите мне, что здесь что-то не так), мне также всегда нужно было щелкнуть правой кнопкой мыши файл, чтобы открыть с emacs-client, а не с emacs. Даже делая это, я все еще получаю новые кадры (мне не нужны фреймы !!! Я хочу новые буферы !!!!) Кстати: скорость все равно не увеличивается. Знает ли кто-нибудь лучше? –

+0

Убедитесь, что ваш рабочий стол запускает 'emacsclient' (или' $ EDITOR'), а не 'emacs'; используйте 'ps auxw' или' top', чтобы узнать, есть ли у вас несколько процессов 'emacs' .... –

+0

OK Я получил вас. Но это не меняет режим демона, и файлы запуска игнорируются. Что делать с этим? –

2

Вот что я сделал. У меня есть Ubuntu, но я уверен, что Gnome также uses /usr/share/applications/.

Вот мой /usr/local/share/applications/emacsclient.desktop:

[Desktop Entry] 
Name=Emacsclient 
GenericName=Text Editor 
Comment=View and edit files 
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; 
Exec=/usr/local/bin/emacsclient %F 
Icon=emacs 
Type=Application 
Terminal=false 
Categories=Development;TextEditor; 
StartupWMClass=Emacs 

Вот мой /usr/local/share/applications/emacs.desktop (только для полноты):

[Desktop Entry] 
Name=Emacs 
GenericName=Text Editor 
Comment=Edit text 
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; 
Exec=emacs %F 
Icon=emacs 
Type=Application 
Terminal=false 
Categories=Development;TextEditor; 
StartupWMClass=Emacs 

командной обновить эти ярлыки без перезагрузки является:

sudo update-desktop-database 

Теперь вы должен иметь запись Emacsclient в вашем файле управления ers "open with". Сделать ассоциации и файлы открытыми в emacs одним щелчком мыши. Просто убедитесь, что есть в вашем ~/.emacs:

(require 'server) 
(or (server-running-p) (server-start)) 
Смежные вопросы