2010-10-06 6 views
1

Juste trouvé ce manuel inachevé, mais il est vraiment impardonnable. Juste sur le point culminant. Je ne comprends toujours pas.Eshell: commandes, syntaxes, etc

  • Qu'est-ce que c'est? Un interprète eLisp?
  • Comment dites-vous à emacs d'éditer un fichier à partir de là?
  • Quelle est la différence?
  • Quelles sont les commandes eshell uniquement?
+6

très mal posée question IMHO - pouvez-vous ré-éditer pour être un peu plus clair/spécifique sur ce que vous demandez.aussi, envisager de diviser en questions distinctes. – cristobalito

Répondre

8

Eshell est un interpréteur de commandes comme un shell normal, mais il ne lance pas bash ou tout autre shell en dessous. Comme bash, il a plusieurs types de commandes: alors que bash a des alias, des fonctions, et retourne à $ PATH, eshell a des alias, des fonctions lisp, des fonctions eshell, et revient à $ PATH.

Ainsi, par exemple, vous pouvez exécuter.

~ $ find-file foo.txt

et la fonction Lisp find-file sera exécutée non interactive (contrairement Mx), ce qui signifie que tous les arguments nécessaires doivent être passés dans ce est une façon de dire à emacs de modifier un fichier à partir d'eshell. Il est probablement plus rapide pour exécuter Cx Cf, car il sera par défaut dans le répertoire que ESHELL est actuellement en

Lorsque vous exécutez.

~ $ ls

il fonctionne en fait la fonction eshell/ls, qui se une liste de répertoire sans appeler /bin/ls. Il y a des builtins similaires; Si vous exécutez C-h feshell/<TAB> vous pouvez obtenir une liste d'entre eux.

L'un des principaux points des fonctions intégrées d'eshell est de faire entrer les commandes dans d'autres fonctions emacs existantes. Par exemple, grep ira dans le tampon *grep* afin que vous puissiez accéder rapidement aux résultats.

Il a également des alias, qui sont quelque peu similaires aux alias bash, mais agissent un peu comme des fonctions dans la façon dont ils gèrent les arguments. Par exemple, en bash, vous pourriez dire

alias ll='ls -l'

alors que dans eshell vous diriez

alias ll ls -l '$*'

et ces deux signifient la même chose. Le $* signifie fondamentalement "développer tous les arguments", et il est nécessaire de le citer. Vous pouvez exécuter alias pour voir tous les alias que vous avez créés.

+2

eshell vous donne un shell uniforme sur toutes les plates-formes (c'est-à-dire une commande ls qui fonctionne de la même manière sur Linux et Windows). – slu

+0

Parfait! Juste ce que je voulais, un mélange de tutoriel, workflow et source de référence. Triste la documentation n'est pas très complète. Il y a d'autres choses que j'aimerais savoir, comme comment personnaliser l'invite. Je pense que je dois apprendre un peu d'éléphant et plonger dans le code quand j'ai un peu de temps. –

Questions connexes