Как установить обработчик протокола subl:// с помощью Unity?
Мое веб-приложение генерирует кликабельные URL-адреса, как показано ниже, в случае ошибки:
subl://open?url=file://%2Fusr%2Flocal%2Fwebenginex%2Fclass%2Fmodels%2Fwxclient.php&line=123
Когда я нажимаю на нее, я получаю эту подсказку:
Нажатие "Запустить приложение" ничего не делает. Я хочу, чтобы он открыл Sublime Text, как задумано. Как я могу настроить это?
3 ответа
Step 1: Create the desktop file
Создать файл /usr/share/applications/sublime-handler.desktop
[Desktop Entry]
Name=Sublime Text 2 URL Handler
GenericName=Text Editor
Comment=Handle URL Scheme subl://
Exec=/usr/share/handlers/sublime-handler %u
Terminal=false
Type=Application
MimeType=x-scheme-handler/subl;
Icon=sublime-text-2
Categories=TextEditor;Development;Utility;
Name[en_US]=Sublime Text 2 URL Handler
Шаг 2: Обновите базу данных MIME-типов
$ sudo update-desktop-database
Step 3: Create the handler file
Создать файл /usr/share/handlers/sublime-handler
#!/usr/bin/env bash
request="${1#*://}" # Remove schema from url (subl://)
request="${request#*?url=}" # Remove open?url=
request="${request//%2F//}" # Replace %2F with /
request="${request/&line=/:}" # Replace &line= with :
request="${request/&column=/:}" # Replace &column= with :
subl "$request" # Launch sublime
Сделайте его исполняемым:
$sudo chmod +x /usr/share/handlers/sublime-handler
Step 4: Register mime-type handler
$ xdg-mime default /usr/share/applications/sublime-handler.desktop x-scheme-handler/subl
Step 5: Profit
Now you can use the links like:
subl:///home/path/to/file.php:123
subl://open?url=/home/path/to/file.php:123
subl://open?url=/home/path/to/file.php&line=123
subl://open?url=/home/path/to/file.php&column=123
subl://open?url=%2Fhome%2Fpath%2Fto%2Ffile.php&line=123
subl://open?url=%2Fhome%2Fpath%2Fto%2Ffile.php&column=123
Step 6: Modify
It can be ported for using with the different IDE, for example phpstorm
Я в значительной степени суммирую это и делаю его более копируемым...
Создайте файл Sublime URL Parser '/ usr / local / bin / subl-url-parser':
sudo tee /usr/local/bin/subl-url-parser > /dev/null <<"EOF"
#!/usr/bin/env bash
request=${1:23} # Delete the first 23 characters "subl://open?url=file://"
request=${request//%2F//} # Replace %2F with /
request=${request/&line=/:} # Replace &line= with :
request=${request/&column=/:} # Replace &column= with :
sublime $request # Launch Sublime
EOF
Сделайте его исполняемым и вставьте ссылку на "subl-url-handler":
sudo chmod +x /usr/local/bin/subl-url-parser
sudo ln -s subl-url-parser /usr/local/bin/subl-url-handler
Создайте (или обновите) файл рабочего стола '/usr/share/applications/sublime-handler.desktop', чтобы использовать новый анализатор URL через 'subl-url-handler':
sudo tee /usr/share/applications/sublime-handler.desktop > /dev/null <<EOF
[Desktop Entry]
Name=Sublime Text URL Handler
GenericName=Text Editor
Comment=Handle URL Scheme subl://
Exec=subl-url-handler %u
Terminal=false
Type=Application
MimeType=x-scheme-handler/subl;
Icon=sublime-text
Categories=TextEditor;Development;Utility;
Name[en_US]=Sublime Text URL Handler
EOF
Обновите базу данных:
sudo update-desktop-database
NB: Это предполагает, что у вас есть sublime
в вашем $PATH
и не только subl
, как я. Если нет, вы можете сделать так:
sudo ln -s `which subl` $(dirname `which subl`)/sublime
У меня была такая же проблема с Sublime Text 3 (AKA ST3), и ответ Андрея выше сработал для меня. Я использовал другой каталог для обработчика, поменял некоторые «2» на «3» в метках, и я изменилrequest="${request#*?url=}"
кrequest="${request#*?url=file://}"
а в остальном все равно.