Quais são todas as maneiras de lançar um shell a partir do emacs e quais são suas várias propriedades?

25

Conheço pelo menos quatro possibilidades:

  • eshell
  • prazo
  • ansi-term
  • Concha

Qual é a lista completa de ferramentas incorporadas ao emacs para iniciar um shell e quais benefícios e desvantagens eles oferecem?

Trevoke
fonte
11
este é um exemplo interessante de uma pergunta de grande lista . Parece que algumas pessoas no site (incluindo nós dois) gostam desse tipo de pergunta, enquanto outras realmente não. Os resultados podem ser realmente variáveis, dependendo da resposta do moderador. Eu comecei uma discussão sobre meta nisso, fazendo referência a esta questão como um exemplo meta.emacs.stackexchange.com/questions/305/...
Joe Corneli

Respostas:

31

M-x shellé a interface padrão para o shell do sistema operacional. No linux, ele chama bash (ou qualquer que seja o padrão), no Windows, chama cmd.exe. M-x shellé o mais usado.

M-x eshellé um shell escrito inteiramente no emacs lisp. Ele tem uma sintaxe semelhante ao bash, mas está bem integrado ao elisp. por exemplo, você pode avaliar o código elisp ali. Eshell é especialmente útil no Windows quando você não tem o cygwin etc instalado.

M-x terme M-x ansi-termsão emulações de terminal, bem como o gnome-terminal, o xterm etc. A principal diferença M-x shellé que as teclas in eshellou shell, ainda são chaves emacs, mas as termteclas emacs não funcionam. Mas, a vantagem é que você pode executar ssh, vim ou qualquer comando que seja baseado na interface de texto, que não funcionará no M-x eshellou M-x shell.

terme ansi-termcostumavam ser pacotes diferentes, mas agora são 2 comandos diferentes no mesmo arquivo term.el. Eu não os usei muito. Você pode encontrar uma resposta mais detalhada sobre isso no wiki do emacs .

Há mais algumas informações no meu blog .

Xah Lee
fonte
11
"agora existem 2 comandos diferentes no mesmo arquivo". Pode haver uma ou duas palavras ausentes lá.
Faheem Mitha
2
Boa resposta. Um link para a página wiki mencionada também seria bom.
Malabarba 25/09
3
"O shell Mx é o mais usado" - eu gostaria de uma citação ou de alguns dados para dar suporte a isso, já que não estou absolutamente convencido de que seja verdade. Além disso, não acrescenta nada substantivo à resposta. Boa resposta caso contrário.
shosti 25/09/14
2
shosti, eu não tenho estatísticas rígidas. de acordo com o cabeçalho do arquivo, shell é 1988. eshell é 1999. term.el também é 1988. eshell é usado principalmente por hackers elisp, então isso é muito menos que os usuários do emacs. Isso deixa shell vs prazo. Acho que podemos comparar sua menção nos livros da emacs, por exemplo, os três ou mais velhos de O'Reilly. Ou comparação com o Google ... mas apenas por experiência na comunidade emacs, acho que termo / ansi-term é muito menos usado.
Xah Lee