O editor de texto padrão em um sistema geralmente é armazenado na variável $EDITOR
environmental. Por exemplo, no meu sistema eu tenho:
$ echo $EDITOR
/usr/bin/emacs
Então, você pode simplesmente executar
$ $EDITOR test.txt
NOTA: Este não é necessariamente o mesmo editor definido nas configurações do ambiente gráfico. Use o método abaixo para obter isso.
Como alternativa, se o sistema estiver configurado para usá-lo, você poderá iniciar o programa padrão associado a um tipo MIME com xdg-open
( open
no OSX):
$ xdg-open test.txt
Mas isso não manterá o terminal até que o comando seja fechado. No entanto, você pode usar a configuração do mime para descobrir qual programa seria aberto e, em seguida, chamar o programa por conta própria. Para fazer isso, obtenha o programa associado ao tipo de texto mime:
$ xdg-mime query default text/plain
pluma.desktop;sublime_text.desktop
Então, agora você pode analisar essa linha para obter o nome do programa:
editor=$(xdg-mime query default text/plain | sed 's/\..*//')
$editor test.txt
NOTA: Isso pressupõe que o arquivo .desktop
tenha o nome do executável real. Uma maneira mais segura seria localizar o próprio arquivo da área de trabalho e fazer o grep do executável. Em seguida, inicie o programa que você encontrou. Você pode fazer tudo com este comando:
editor=$(grep -i ^exec $(locate -n 1 $(xdg-mime query default text/plain |
cut -d';' -f 1)) |
perl -pe 's/.*=(\S+).*/$1/')
$editor test.txt