2010-11-11 4 views
4

Je passe à GNU emacs pour mes scripts python et bash. J'apprécie vraiment cela, mais je n'aime pas la partie X-window d'emacs. En tant que tel, j'utilise toujours emacs -nw <my_file> pour éditer mes fichiers. Cependant, quand j'associe mes fichiers .py et .sh avec emacs, je finis par ouvrir emacs en mode X-window quand je double-clique dessus depuis gnome-nautilus (Ubuntu 10.10). Ce que je voudrais savoir est: Que dois-je ajouter à mon fichier .emacs afin d'utiliser emacs sans X-window quand je double-clique sur mes fichiers? Note: Je veux qu'emacs ouvre un terminal, peut-être le redimensionne selon mes spécifications (déjà avec un script .sh), se lance et ouvre mon fichier.Personnalisation de GNU Emacs - pas de fenêtre

Comment dois-je accomplir cela?

À la votre!

EDIT: Merci pour toutes les réponses! Je dois donner le chèque au chèque le plus complet, bien que, bien sûr, il se base sur les précédents.

Répondre

3

Miser sur la réponse de Gareth:

Pour ouvrir un fichier dans une session emacs existant si l'on est en cours d'exécution, mais ouvrir un nouveau dans un terminal s'il n'y en a pas, vous pouvez effectuer les opérations suivantes:

  1. Ajouter (server-start) à votre .emacs
  2. Créer un script run_emacs avec le contenu suivant:

    #!/bin/bash 
    gnome-terminal -e "emacs -nw [email protected]" 
    

    et de le rendre exécutable.

  3. Définissez votre application pour ouvrir les fichiers python et bash être emacsclient -a /path/to/run_emacs %F (si vous placez run_emacs quelque part dans votre $PATH, vous pouvez laisser le peu /path/to/).

+0

Nice @sepp! Cela fait vraiment l'affaire pour moi, merci :) J'ai aussi changé mon option nautilus pour toujours ouvrir les fichiers exécutables en double-cliquant (au lieu de demander: 'run-open-else ...?'). Fait pour un environnement de développement beaucoup amélioré. À votre santé – Morlock

1

Si vous utilisez gnome vous devez changer l'option de ligne de commande pour le emacs raccourci de

/usr/bin/emacs% F

à

-e gnome-terminal «/usr/bin/emacs -nw% F "

Cela peut être fait en cliquant avec le bouton droit sur le menu Application, sélectionnez Modifier les menus.

3

Johan a expliqué ce qu'il faut faire si vous voulez lancer un processus Emacs distinct pour chaque fichier.

Mais normalement, vous voudriez exécuter un seul processus Emacs et organiser que vos fichiers soient ouverts dans de nouveaux tampons dans le processus Emacs déjà en cours d'exécution.

La façon de le faire est de commencer la Emacs server lorsque vous démarrez Emacs (par exemple, en exécutant la commande server-start, ou de mettre (server-start) dans votre .emacs) et l'organisation de Gnome pour exécuter le emacsclient program.

+0

@Gareth Belle approche. J'ai ajouté '(server-start)' dans mon fichier .emacs.Pourriez-vous fournir l'équivalent de la ligne 'gnome-terminal -e "de Johan/usr/bin/emacs -nw% F" pour le client emacsclient? J'ai essayé 'gnome-terminal -e' emacsclient -nw% F '' sans succès. À votre santé! – Morlock

+0

Voir la documentation [emacsclient] (http://www.gnu.org/software/emacs/manual/html_node/emacs/emacsclient-Options.html#emacsclient-Options). L'option '-nw' demande' emacsclient' pour démarrer un nouvel Emacs pour vous. Vous voulez probablement juste vieux 'emacsclient% F' (pas' gnome-terminal', pas '-nw'). –

+0

Très bien, je vais jouer avec les options d'emacsclient. Cependant, votre dernière suggestion (emacsclient% F) nécessite que vous ayez déjà une instance du programme emacsclient en cours d'exécution. Pas un gros problème, mais ce serait bien si la solution fonctionnait en double-cliquant sur le fichier, si un client emacs est déjà en cours d'exécution. Merci! – Morlock

Questions connexes