2 votes

alias ou fonction pour une commande emacs ?

Je suis donc au premier jour de mon nouveau travail, et sur le serveur que nous utilisons, l'emacs par défaut est basé sur X-Windows. Je préfère de loin l'utiliser dans le bon vieux terminal, et j'aimerais pouvoir faire en sorte que la commande emacs foo.txt être lu comme emacs --no-window-system foo.txt .

J'ai essayé de le faire en ajoutant la ligne function emacs() { emacs --no-window-system "$@" ;} à mon ~/.profile et a ensuite exécuté source ~/.profile mais le système ne réagit pas à emacs foo.txt .

Est-ce que je m'y prends mal ? En guise d'alternative, j'aimerais savoir si ce que je veux faire est complètement à l'envers, et il s'avère qu'il existe une solution beaucoup plus simple.

1voto

user2013 Points 2301

Ce serait mieux comme un alias.

Mettez ceci dans votre .profile ou .bashrc

alias emacs='emacs -nw'

0voto

David Hull Points 101

Je pense que le problème avec votre solution originale est que l'appel à emacs à l'intérieur de votre emacs est un appel récursif à la fonction emacs fonction. Vous pouvez appeler la fonction emacs programme au lieu de votre emacs fonction en utilisant l'utilitaire bash command .

function emacs() { command emacs --no-window-system "$@" ;}

J'ai un peu le désir inverse : je veux mettre automatiquement emacs en arrière-plan lorsque je fonctionne sous un système de fenêtres. J'ai ce qui suit dans mon .bashrc :

if [ -n "$DISPLAY" ]; then
    function emacs() { (command emacs "$@" &) }
fi

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X