Geany или Gedit предоставляют протокол браузера способом Textmate с txmt: //?

Textmate на Mac может быть привязан к протоколу txmt, что означает, что рамки разработки (такие как Play Framework) могут быть настроены таким образом, чтобы отображать сообщения об ошибках. Если появляется стек, каждая строка из stacktrace является URL-адресом формата (я предполагаю):

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

(где 123 – номер строки).

При нажатии этой кнопки открывается файл в Textmate.

Возможно ли это с Gedit, Geany или текстовым редактором другого программиста?

можно легко создать новые обработчики протоколов в Gnome, все, что вам нужно сделать, это добавить некоторые ключи в gconf.

В терминале введите:

 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 

Замените foo на обе строки протоколом, который вы хотите зарегистрировать, и / path / to / app с указанием пути к приложению, которое вы хотите запустить. (от: http://kb.mozillazine.org/Register_protocol#All_Firefox_versions )

Принятый ответ не работает 11.04.

Вот мое решение для gedit 11.04: http://rystraum.com/blog/2012/05/rails-footnotes-with-gedit/

TLDR; версия:

  1. Создать /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. Запустить sudo update-desktop-database

  3. скрипт open_gedit внутри местоположения, находящийся в $ PATH

     #!/bin/bash FILE=$1 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. Вызов как foo: /// путь / в / file & line = 299

Мой лучший снимок с использованием Python (возможно, пропустил некоторые крайние случаи):

 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 

geany://home/www/index.php?239 открытие geany://home/www/index.php?239 как /home/www/index.php в строке 239 с использованием /tmp/geany качестве сокета (чтобы избежать открытия многих экземпляров geany)