O Geany ou o Gedit fornecem um protocolo de navegador na forma como o Textmate faz com txmt: //?

5

O Textmate no Mac pode ser vinculado ao protocolo txmt, o que significa que as estruturas de desenvolvimento (como o Play Framework) podem ser configuradas para usar isso para exibir mensagens de erro. Se um stacktrace aparecer, cada linha do stacktrace é uma URL do formato (suponho):

txmt:///home/myuser/projects/myproject/ProblemFile.java:123

(onde 123 é o número da linha).

Clicar nisso abre o arquivo no Textmate.

Isso é possível com o editor de texto Gedit, Geany ou outro programador?

    
por Rich 30.11.2010 / 13:05

3 respostas

4

é possível criar facilmente novos manipuladores de protocolo no Gnome, tudo que você precisa fazer é adicionar algumas chaves no gconf.

Em um terminal, digite:

gconftool-2 -s /desktop/gnome/url-handlers/foo/command '/path/to/app %s' --type String
gconftool-2 -s /desktop/gnome/url-handlers/foo/enabled --type Boolean true

Substitua foo em ambas as linhas pelo protocolo que você deseja registrar e / path / to / app pelo caminho para o aplicativo que você deseja executar. (de: link )

    
por Mathieu Comandon 30.11.2010 / 14:04
3

A resposta aceita não funciona em 11.04.

Aqui está a minha solução para o gedit em 11.04: link

TLDR; versão:

  1. Crie /usr/share/applications/foo-uri.desktop :

    [Desktop Entry]
    Name=Foo
    GenericName=Foo
    Comment=Open foo links in Gedit
    TryExec=open_gedit
    Exec=open_gedit %u
    Terminal=false
    Type=Application
    MimeType=x-scheme-handler/foo
    NoDisplay=true
    
  2. Executar sudo update-desktop-database

  3. open_gedit script no local que está em $ PATH

    #!/bin/bash
    FILE=
    FILE=${FILE/foo\:\/\//}
    LINE=$(echo $FILE | grep -o "\&line=[0-9]\+")
    LINE=$(echo $LINE | grep -o "[0-9]\+")
    FILE=$(echo $FILE | grep -o "\(.\+\)\&")
    FILE=$(echo $FILE | cut -d'&' -f1)
    gedit +$LINE $FILE
    
  4. Chame como foo: /// caminho / para / arquivo & linha = 299

por Rystraum 04.05.2012 / 20:19
0

Meu melhor tiro usando Python (provavelmente perde alguns casos de borda):

gconftool-2 -s /desktop/gnome/url-handlers/geany/command ' python -c "import urlparse;import sys;import pipes;url=\"http\"+sys.argv[1][5:];import os; up=urlparse.urlparse(url);os.system(\"geany \"+(pipes.quote(\"/\"+up.netloc+up.path)+\" --socket-file /tmp/geany --line \" + pipes.quote(up.query)))" %s' --type String
gconftool-2 -s /desktop/gnome/url-handlers/geany/enabled --type Boolean true

Irá começar a abrir geany://home/www/index.php?239 como /home/www/index.php na linha 239 usando /tmp/geany como soquete (para evitar a abertura de muitas instâncias do geany)

    
por Slava N 12.05.2011 / 09:37