Textmate на Mac может быть привязан к протоколу txmt, что означает, что платформы разработки (такие как Play Framework) могут быть настроены для использования этого для отображения сообщений об ошибках. Если появляется трассировка стека, каждая строка трассировки стека является URL-адресом формата (я предполагаю):
txmt:///home/myuser/projects/myproject/ProblemFile.java:123
(где 123 - номер строки).
При нажатии на этот файл открывается файл в Textmate.
Возможно ли это с помощью Gedit, Geany или другого текстового редактора программиста?
Мой лучший выстрел с помощью 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
как /home/www/index.php
в строке 239
использование /tmp/geany
как сокет (чтобы не открывать много экземпляров geany)
Принятый ответ не работает над 11,04.
Вот мое решение для gedit на 11,04: http://rystraum.com/blog/2012/05/rails-footnotes-with-gedit/
TLDR; версия:
Создать /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
Выполненный sudo update-desktop-database
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
Звоните как foo:///path/to/file&line=299
Можно легко создавать новые обработчики протоколов в 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 )