Définir emacs -nw comme éditeur par défaut

13

Lors de l'édition de fichiers comme sudoers, je veux utiliser emacs au lieu de nano. J'ai donc exécuté cette commande

sudo update-alternatives --config editor

Et j'ai choisi emacs. Le seul problème est que j'aime emacs en mode sans fenêtre (l'indicateur -nw) et que j'ai alias emacs emacs='emacs -nw'pour que je ne puisse utiliser aucun mode fenêtre en utilisation normale, mais je ne sais pas comment faire pour que mon éditeur par défaut soit en mode sans fenêtre.

En d'autres termes, j'ai besoin d'obtenir la commande sudo visudoet les commandes similaires qui ouvrent les éditeurs pour ouvrir le fichier emacs -nw. Comment puis-je faire ceci? Je suis sur Ubuntu 12.04.

gsingh2011
la source
Ceci n'est pas lié, mais si vous avez l'intention d'utiliser `emacs -nw 'comme éditeur de terminal par défaut, vous voudrez peut-être examiner emacsclient et exécuter emacs en tant que démon. Sinon, je pense que ce serait beaucoup trop lent au démarrage. Avec un serveur emacs, c'est un démarrage pratiquement instantané et pas difficile à configurer.
Dodgie

Réponses:

8

Créez un script qui démarre emacs avec l'indicateur -nw, par exemple / usr / local / bin / emacs-nw.

#!/bin/sh

emacs -nw "$@"

Installez-le avec update-alternatives --install.

sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/emacs-nw 2

Configurez l'éditeur pour qu'il soit votre nouveau script.

sudo update-alternatives --set editor /usr/local/bin/emacs-nw
McNisse
la source
2
Pour ceux qui n'utilisent pas update-alternatives en vedette des systèmes, chmod +x /usr/local/bin/emacs-nwet export EDITOR='emacs-nw'en .bashrcfaire l'affaire.
smonff
1
La simple mise à jour de la variable shell EDITOR pour appeler emacs -nwest plus traditionnelle et n'implique pas toute cette création de fichiers bizarre pour une tâche aussi simple. Pourquoi est-ce mieux?
vaer-k
6

Ajoutez ce qui suit à votre ~/.bashrcfichier (ou au fichier de configuration de votre shell s'il ne s'agit pas de Bash).

export EDITOR="emacs -nw"

Cela devrait définir (et exporter) une variable env définissant votre éditeur par défaut comme Emacs en mode non graphique.

Haziz
la source
Après avoir défini EDITORcomment ouvririez-vous Emacs en mode graphique?
Manolete
2
@Manolete que vous pouvez utiliser command emacs, cela exécutera Emacs sans alias et autres. Bien sûr, vous pouvez également unalias emacspour une session.
Kyrremann
@Manolete Lancer réellement emacs avec emacssur la ligne de commande ou cliquer sur son icône lancera toujours le formulaire graphique. La commande ci-dessus dans mon article définit simplement la variable d'environnement EDITOR sur "emacs -nw", elle ne crée en fait pas d'alias. Il indique simplement au shell que votre éditeur préféré est emacs -nw. emacslancera toujours le formulaire graphique.
haziz
1

J'ai le réglage suivant dans mon ~/.bashrc

export EDITOR="emacsclient -t -a=\"\""

Cela tentera d'abord de connecter le serveur démon emacs s'il est déjà démarré, sinon démarrez d'abord le serveur démon puis reconnectez-vous.

De la même façon, j'ai la configuration suivante dans mon ~/.gitconfig

[core]
    editor = emacsclient -t -a=\\\"\\\"
Jiacai Liu
la source