однако жаль малоиспользуется sam|acme
и в целом логика исполнения текущей строки редактируемого файла(текстового буфера) тем или иным исполнителем и помещение возвращённого результата (побочный итак в глобальности) в тот или иной текстовый контейнер
ззы: ща на ctrl-\ в сode висит Terminal: Run Selected Text ln Active Terminal который при пустом выделении отрабатывает текущую строку - получается нечто парное vim'овскому :r!вотэтовотвыделение
забавно как пламбер оказался не ко времени всё ещё
Я ему ответил:
Я как-то себе делал приблуду, которая по хоткею берёт выделенный текст как имя файла и открывает его. Если путь к файлу указан не от корня, то она пытается вычленить путь к текущему каталогу из заголовка активного окна. Поскольку обычно у меня активное окно это либо терминал, либо текстовый редактор, и они настроены давать там эту информацию, то всё работает «магически».
Этот обмен репликами заставил меня вернуться к мыслям об организации хоткеев в SDE. И вот хочу показать вам фрагмент черновика на эту тему.
Также дополнительно к сказанному в черновике хочу сказать следующее:
Я многократно говорил, что задача DE – интеграция программ. Мне на это отвечают, что «интеграция программ» создаёт монстров, примеры которых мы можем наблюдать в KDE и вообще везде.
Мой ответ на это: правильная интеграция монстров не создаёт. Программы вообще не должны знать о существовании друг друга. Им не нужно линковаться друг к другу и не обязательно иметь so-шки на пару тысяч символов. Всё, что им нужно – предоставлять о себе немного информации.
Всё, описанное ниже, доступно к реализации даже при помощи несложного bash-скрипта для любой DE или вообще без DE. Но конечно грамотная реализация на Си – предпочтительнее.
Итак, сам текст:
Хоткеи запуска приложений:
Super + Q - Запустить предпочитаемый эмулятор терминала
Super + W - Запустить предпочитаемый текстовый редактор
Super + E - Запустить предпочитаемый файловый менеджер
Super + R - Показать лаунчер для быстрого запуска команд
Super + T - Запустить предпочитаемый web-браузер
Super + Y - Запустить предпочитаемый калькулятор
Как видно, горячие клавиши выбраны так, чтобы располагаться подряд в 1-й буквенной строке клавиатуры (QWERTY) и не имеют мненомического значения. Порядок клавиш выбран в соответствии с тем, какие приложения обычно наиболее часто востребованы при работе с типичной UNIX-like системой: в первую очередь вам потребуется терминал, во вторую текстовый редактор и так далее.
Хоткеи, использующие выделенный текст как путь к документу:
Super + Shift + Q - Запустить предпочитаемый эмулятор терминала в указанном каталоге
Super + Shift + W - Открыть указанный файл в предпочитаемом текстовом редакторе
Super + Shift + E - Показать указанный файл в предпочитаемом файловом менеджере
Super + Alt + E - Показать контекстное меню для указанного файла
Super + Shift + R - Показать лаунчер для быстрого запуска команд и выполнить команду для указанного пути
Super + Shift + T - Открыть указанный URL в предпочитаемом web-браузере
Каким образом DE понимает, что является «указанным файлом/каталогом»:
Первый вариант — если выделен некоторый текст.
- Если выделенный текст выглядит как URL, то он и считается указанным.
- Если выделенный текст выглядит как полный путь (начинается с символа
/
), то он и считается указанным. - В ином случае выделенный текст считается файловым путём относительно текущего каталога. Следовательно, необходимо найти текущий каталог.
- Для этого DE извлекает путь к документу из текущего окна.
- Если путь является существующим каталогом, то он и считается текущим каталогом.
- Если путь является существующим файлом, то берётся путь к его каталогу.
- Если путь извлечь или проверить не удалось, то домашний каталог пользователя считается текущим.
Второй вариант — если текст не выделен.
В этом случае DE извлекает путь к документу из текущего окна.
- Если запускаемое приложение требует только путь к каталогу (как в случае с
Super + Shift + Q
), то путь урезается до пути к каталогу. - В ином случае используется полный путь.
Частные примеры действий, которые становятся вам доступны c использованием данных возможностей:
- Показать в файловом менеджере каталог, с которым вы работаете в терминале.
- Открыть терминал в каталоге, который вы просматриваете в файловом менеджере.
- Открыть терминал в том каталоге, где лежит документ, с которым вы сейчас работаете.
- Выделить имя файла в окне терминала и открыть его в редакторе или в любой программе по вашему выбору.
- Выделить имя файла в текстовом редакторе и открыть этот файл.
- Выделить имя файла и показать контекстное файловое меню.
Таким образом ваша работа с документами перестаёт быть приложение-центричной и становится документо-центричной. В фокусе вашего внимания то, С ЧЕМ вы работаете, а не то, КАКИМИ ПРИЛОЖЕНИЯМИ вы работаете. Вы легко можете «перекинуть» один и тот же файл/объект/документ в другое приложение просто нажав хоткей. DE видит и понимает контекст вашей работы.
Данный вид интеграции не ограничивается приложениями в составе DE, а может работать с любыми приложениями. Для этого достаточно, чтобы приложение умело отображать полный путь к обрабатываемому документу в заголовке окна.
При условии, что используемые приложения умеют работать с виртуальными путями GIO, это также прозрачно работает и для смонтированных в GIO архивов, удаленных файловых систем, сетевых шар и т.п.