Executando arquivos direto do gEdit
29 de Março de 2007
Uma funcionalidade que não tinha no gEdit e que eu sentia muita falta é a de executar o arquivo que você estava editando. Por exemplo, você pode estar digitando um HTML e gostaria de ver como está ficando, no navegador. Ou, estar fazendo um script em Python, Ruby ou PHP e gostaria de executar esse arquivo sem precisar sair do editor. No SciTE eu conseguia fazer isso com um simples F5. Agora também consigo fazer no gEdit!
Criei um comando para o "External Tools" — plugin muito interessante, por sinal — que roda comandos externos, como o próprio nome sugere. Para utilizá-lo, primeiro ative-o em "Edit > Preferences > Plugins > External Tool". Depois, vá em "Tools > External Tools" e adicione um novo comando. Copie o código abaixo e cole no campo "Command(s)".
Se você TEM Ruby instalado, use este script:
#!/usr/bin/env ruby
current_file = ENV['GEDIT_CURRENT_DOCUMENT_PATH']
if not current_file
puts "The current file cannot be runned."
elsif current_file =~ /\.(php|py|rb|html|htm|xml)$/i
commands = {
'php' => "php -f #{current_file}",
'rb' => "ruby #{current_file}",
'py' => "python #{current_file}",
'browser' => "gnome-open #{current_file}"
}
extension = $1
extension = 'browser' if ['xml', 'html', 'htm'].include?(extension)
command = commands[extension]
puts "Running command #{command}\n\n"
system(command)
end
Se você NÃO TEM Ruby instalado, use este script:
#!/usr/bin/env python
import re
import os
current_file = os.getenv("GEDIT_CURRENT_DOCUMENT_PATH")
match = re.search('\.(php|py|rb|html|htm|xml)$', current_file)
if match is None:
print "The current file cannot be runned"
else:
commands = {
'php': 'php -f "%s"',
'rb': 'ruby "%s"',
'py': 'python "%s"',
'browser': 'gnome-open "%s"'
}
extension = match.group(1)
if extension in ['xml', 'html', 'htm']:
extension = 'browser'
command = commands[extension] % current_file
print "Running command %s\n\n" % command
os.system(command)

Agora, quando você estiver executando um arquivo .php, .rb, .py ou .htm/.html e quiser executá-lo, basta pressionar F5 e pronto! Se for HTML abre no navegador padrão. Se for um dos outros que mencionei ele executa e exibe a saída no "Shell Output". Veja a saída de um script Ruby:

Update: Adicionado suporte a XML com comportamento semelhante de HTML.
Update 2: Adicionado versão Python do script para quem não tem Ruby instalado.
- Permalink
- Trackback
- Feed dos comentários
- Ao som de: Punchline – Just Getting Started
Textos escritos por
Comentários #
Muito boa, sempre tentei usar o external tools, mas sem usar script.
Se um dia eu estiver sem SciTE usarei isso!
Gostei da idéia, mas tenho uma sugestão ainda mais simples. Basta criar uma ferramenta externa com o comando "gnome-open $GEDIT_CURRENT_DOCUMENT_URI".
Pedi que a idéia seja acrescentada à instalação padrão do gedit:
http://bugzilla.gnome.org/show_bug.cgi?id=425045
Leonardo, o padrão para arquivos Python é abrir no gedit. Para mim, não funciona. Mesma coisa para o PHP e Ruby.
[...] Permite executar comandos externos e shell script. Excelente se usado com o comando Run File. http://live.gnome.org/Gedit/ToolLauncherPlugin [...]
[...] http://simplesideias.com.br/executando-comandos-direto-do-gedit/ [...]
o meu gedit não tem a opção "External Tool" > "Tools > External Tools".
tem outro jeito de instalar o plugin?
Muller, você precisa instalar e ativar o plugin External Tools. Para instalar esse e outros plugins, execute o comando
sudo aptitude install gedit-plugins. Depois você pode ativá-lo em "Edit › Preferences › Plugins"."Pacote não encontrado". Vou procurar na rede e instalar...
Muito obrigado !
Agora sim que eu não saio mais do gEdit :)
Acho que você precisar descomentar as linhas dos repositórios multiverse e universe no /etc/apt/sources.list
Aqui deu esses erros:
"Running tool: Build
/bin/sh: line 2: current_file: command not found
/bin/sh: -c: line 6: syntax error near unexpected token `('
/bin/sh: -c: line 6: `elsif current_file =~ /\.(php|py|rb|html|htm|xml)$/i'
Exited: 512"
Muller, você tem Ruby instalado? Para saber, execute o comando
ruby -v. Se retornar algo comoruby 1.8.5 (2006-08-25) [i486-linux], a resposta é sim. Caso contrário, adicione a versão Python do script (coloquei no post hoje de manhã).Eu também achei que era isso e instalei o Ruby ontem... mas também não deu :/
Testei o outro script em Python e também não deu. Tenho o Python instalado.
Instalei o SciTE e também tá dando erro ">php -f "calendario.php"
sh: php: command not found
>Exit code: 127"
Acho que é minha distribuição, vou ver o que posso fazer.
Obrigado.
Baixei um arquivo com extensão .bin. Como posso fazer para abri-lo?
Muito bom este post,
Simples, ilustrado e eficiente.
Vlw mtu!
Estava realmente precisando de algo que rodace meus códigos ruby!
Deixe um comentário