Alias ​​um comando para executar em segundo plano


25

Eu gostaria que um atalho de teclado funcionasse da seguinte maneira:

> e foo.txt

expandir como

> emacs foo.txt &

É simples de usar alias e=emacs, mas como insiro o &após o nome do arquivo? Sei que talvez não seja possível usar apenas alias, então aceitarei qualquer solução do bash. Se for necessário um script de shell, explique como ele funciona.


4
Você deve usar emacsclientou gnuclientabrir um arquivo a partir de linha de comando em vez de abrir uma nova emacspara cada arquivo: emacswiki.org/emacs/EmacsClient
andcoz

Respostas:


38

O alias no bash não pode ter argumentos, mas você pode usar funções.

e() { emacs "$@" & }

então

e foo.txt

fará o que você quiser.


11
Isso tem um problema quando eu digito e foo*um diretório com ambos foo.cppe foo.h, apenas um dos arquivos será aberto.
21711

4
@Hooked, use em "$@"vez de "$1"na função.
AProgramador 23/09

11
@ AProgrammer que parece não funcionar para caracteres curinga. A sintaxe que estou usando é: emacs $* &e parece ser uma solução ainda melhore() { command emacs $* & disown }
nome:
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.