Страница 1 из 16

Total Commander Edit Redirector

Добавлено: Вс окт 17, 2010 01:10
CaptainFlint
Решил я написать и свой вариант перенаправлялки редактирования файлов. Сразу предупреждаю: задачи ставились весьма далёкие от потребностей многих пользователей, а именно: минималистичность, максимальная компактность и производительность за счёт выкидывания тех функций, которые лично мне кажутся излишествами.

В результате имеем следующее:
  • Разным расширениям файлов можно назначать разные редакторы.
  • Поддерживается открытие выделенных файлов (при этом используется один и тот же редактор, назначенный тому из выделенных файлов, который находится под курсором — или первому, если файл под курсором не выделен).
  • Поддерживаются все режимы представления, кроме эскизов.
  • Полная поддержка юникода.
  • Никаких графических конфигураторов. Настройка — исключительно ручной правкой INI-файла.
  • Никакого мульти-выбора редакторов. Каждому расширению может быть назначена ровно одна программа.
Если кого-то это всё не пугает, можете пользоваться. :)

Ссылки:
32-битная версия (25 Кб) / зеркало
32-битная версия без SSE (25 Кб) / зеркало (для старых процессоров)
64-битная версия (26 Кб) / зеркало
Исходный код (C++) (42 Кб) / зеркало / репозиторий

Добавлено: Вс окт 17, 2010 02:03
Den_Klimov
Отличия утилиты от других в принципе понятны, как и концепция в целом, в ReadMe всё ясно изложено.
Саму задумку утилиты одобряю.

Единстенное что непонял, возможно туплю, но что значит "Не поддерживаются виртуальные папки (возможна доработка в будущем). "? О чём собственно речь?

Добавлено: Вс окт 17, 2010 02:14
CaptainFlint
Den_Klimov
Если в Тотале открыть виртуальную папку (Рабочий стол, например), то по F4 файл отредактировать не получится. Поскольку это требуется не так часто, я решил пока с этим не заморачиваться.

Добавлено: Вс окт 17, 2010 02:16
Den_Klimov
CaptainFlint писал(а):Den_Klimov
Если в Тотале открыть виртуальную папку (Рабочий стол, например), то по F4 файл отредактировать не получится. Поскольку это требуется не так часто, я решил пока с этим не заморачиваться.
Ага, с этим понятно. Вспомнил что обзывают "виртуальными папками".
В будущем рекомендую всё же сделать поддержку. Так как на самом деле иногда таки требуется.
-------------
И ещё Костик, скажи мне плиз, а как лучше по твоему мнению как автора повесить утилиту на иное сочетание клавиш (не F4), так же как другие утилиты вешаю? И не будет ли каких проблем?

И в сетевых каталогах кстати она нормально работает?
-------------
Хи. Что-то у мну пока утилита не заработала никак. :)
Система XP.SP3 x32, Total 7.55a.

Добавлено: Вс окт 17, 2010 02:39
CaptainFlint
Den_Klimov писал(а):В будущем рекомендую всё же сделать поддержку. Так как на самом деле иногда таки требуется.
Попробую добавить, но, скорее всего, из виртуальных папок можно будет открывать только файл под курсором: его Тотал передаёт редактору. А вот для выделенных файлов определить их реальное местоположение будет весьма затруднительно. Например, как понять, что \\Fonts\cour.ttf — это файл именно в виртуальной папке шрифтов, а не на другом компьютере с именем Fonts в локальной сети?
(Собственно говоря, прожка уже и сейчас открывает файл под курсором, просто некоторое время тормозит, пытаясь достучаться до сетевого компа а-ля \\Рабочий стол, получает ошибку по таймауту, и открывает файл, переданный Тоталом непосредственно через командную строку — с полным, реальным путём).
Den_Klimov писал(а):И ещё Костик, скажи мне плиз, а как лучше по твоему мнению как автора повесить утилиту на иное сочетание клавиш (не F4)? И не будет ли каких проблем?
В смысле — запускать не как редактор, а через EM-команду? Я бы не рекомендовал. В этом случае невозможно будет открывать файлы из FS-плагинов, с FTP, из архивов. В работе с обычными файлами в обычных каталогах проблем возникнуть не должно.
Den_Klimov писал(а):И в сетевых каталогах кстати она нормально работает?
Да. Основной причиной, побудившей меня начать писать эту прожку, были глюки OFSTC с сетью, так что за этим я следил в первую очередь. :) Впрочем, следить особо не пришлось, работа с сетью у меня в коде вообще ничем не отличается от работы с локальными файлами.

Добавлено: Вс окт 17, 2010 02:43
Den_Klimov
Да. Основной причиной, побудившей меня начать писать эту прожку, были глюки OFSTC с сетью, так что за этим я следил в первую очередь. Впрочем, следить особо не пришлось, работа с сетью у меня в коде вообще ничем не отличается от работы с локальными файлами.
Последняя стабильная бета (Open File Shell For TC 2.0.0.73 beta) по утверждению автора этой проблемы не имеет. Я ещё её не тестил, только толкьо получил на руки, но верю на слово. Кстати скинул тебе в личку.
F4Menu кстати также её не имеет (оказалось очень очень неплохой прожкой в последней своей финальной версии, ежели настроить конечно).
---
Хи. Что-то у мну пока твоя утилита не заработала никак. Не могу понять в чём причина.
Система XP.SP3 x32, Total 7.55a.

Добавлено: Вс окт 17, 2010 02:47
CaptainFlint
Den_Klimov писал(а):Последняя бета (Open File Shell For TC 2.0.0.73 beta) по утверждению автора этой проблемы не имеет.
Ну я как бы не провидец и не знал, что сегодня появится 2.0. :) Впрочем, я не жалею, что написал прожку — куда приятнее иметь у себя то, что заточено под мои личные потребности.
Den_Klimov писал(а):F4Menu кстати также её не имеет (оказалось очень очень неплохой прожкой в последней финальной версии).
Мне концепция интерфейса в этой программе не понравилась до чрезвычайности.
Den_Klimov писал(а):Хи. Что-то у мну пока твоя утилита не заработала никак. Не могу понять в чём причина.
Система XP.SP3 x32, Total 7.55a.
Что говорит?

Добавлено: Вс окт 17, 2010 02:52
Den_Klimov
Что говорит?
В том-то и дело что ничего. Ровным счётом никакой реакции. Просто ничего не происходит. Очень странно. :(
Висит на F4. Уже даже прописал путь без %Commander_path% на всякий случай, не помогло. При попытке открыть прописанные расширения (ты вижу уже прописал пару заранее в конфиг для примера) ничего не происходит. :(
Мне концепция интерфейса в этой программе не понравилась до чрезвычайности.
Дык если её настроить то интерфейса можно вообще не видеть, сразу будет нужная прога запускаться. И делает это F4Menu в целом очень хорошо. Несколько получше даже чем старые версии Open File Shell For TC.
Да и интерфейс в общем-то как интерфейс. Ну меню и меню. Жить можно. :)

Добавлено: Вс окт 17, 2010 03:18
CaptainFlint
Den_Klimov писал(а):В том-то и дело что ничего. Ровным счётом никакой реакции.
Не должна… Если падает, выдавалось бы сообщение. Может, зависает? Посмотри в Диспетчере задач, не присутствует ли процесс tcer.exe.

Кстати, конфиг должен называться tcer.ini, он у тебя присутствует? Правда, если бы конфига не было, прожка всё равно ругнуться должна была бы…

Попробуй оставить настройку редактора в Тотале, а tcer.exe переименовать во что-нибудь, и нажми F4 на любом файле: ругнётся Тотал или нет? Если ругнётся, то попробуй просто запустить tcer.exe дубль-кликом или Enter'ом из Тотала, посмотри, что произойдёт (при дефолтном конфиге должен открыться Блокнот с содержимым самого tcer.exe).

Если ситуация не прояснится, попробую завтра напихать логирования и выслать тебе для сбора трассировки, чтобы понять, что происходит.
Den_Klimov писал(а):Да и интерфейс в общем-то как интерфейс. Ну меню и меню. Жить можно.
Дело вкуса. В моём понимании первичным интерфейсом программы может быть что угодно, но никак не меню — это вопрос общего отношения к программе, а не к конкретному поведению в определённых условиях. Поэтому "настраивать, чтобы не появлялось" я предпочёл в OFSTC. Ну а сейчас, понятно, мне уже неважно, что там где и какими способами настраивается. :)

Добавлено: Вс окт 17, 2010 04:46
Den_Klimov
Всё что ты предположил мимо. Везде всё путём. Но как уже и писал никакой реакции от tcer добится не удалось.

Попробовал уже и тупо запустить tcer.exe вручную. Никакой реакции на экране, ничего не происходит. В процессах tcer.exe буквально на секунду появляется и сразу исчезает. Уже даже и антивирь отключил.

Добавлено: Вс окт 17, 2010 10:21
Avada
CaptainFlint
При назначении TC Edit Redirector на F4 и применении с использованием tcer.sample.ini, тупо переименованного без внутренних изменений в tcer.ini, имеем результат:

Код: Выделить всё

---------------------------
tcer.exe - Точка входа не найдена
---------------------------
Точка входа в процедуру DecodePointer не найдена в библиотеке DLL KERNEL32.dll. 
---------------------------
ОК   
---------------------------
При попытке непосредственного запуска tcer.exe — то же самое.

Добавлено: Вс окт 17, 2010 14:00
CaptainFlint
Den_Klimov писал(а):Всё что ты предположил мимо. Везде всё путём.
Да результат-то какой? Ругается Тотал на отсутствующий EXE или нет?

Avada
А вот это что-то совсем странное… Напомни версию операционки, включая сервис-пак, не SP1 ли? В XP SP2 и SP3 эта функция присутствует.

(Похоже, я погорячился, когда написал в требованиях Win2000… Я в ней тестировал — всё запускалось, но самый последний билд я в ней не гонял. Но всё равно не пойму, откуда взялась эта DecodePointer, сам я её не вызываю. "Будем искать"… © )

Добавлено: Вс окт 17, 2010 14:22
Flasher
на Win7 работает.
CaptainFlint писал(а):Каждому расширению может быть назначена ровно одна программа.
А списком расширений нельзя организовать? Т.е. не

Код: Выделить всё

png=MSPaint
bmp=MSPaint
, а

Код: Выделить всё

png,bmp=MSPaint

Добавлено: Вс окт 17, 2010 14:39
Avada
CaptainFlint
CaptainFlint писал(а):Напомни версию операционки, включая сервис-пак, не SP1 ли? В XP SP2 и SP3 эта функция присутствует.
Да, проверялось как раз на машине с XP SP1. Была мысль о несовместимости системной версии, но поскольку было сказано про Win2000... В общем, есть такой факт.

Добавлено: Вс окт 17, 2010 14:47
CaptainFlint
Flasher писал(а):А списком расширений нельзя организовать?
Это в планах, но не уверен, что буду реализовывать. Как минимум, надо сначала проверить, как скажется на производительности, потому что сейчас это один вызов а-ля "дай содержимое такого-то ключа", а придётся делать чтение всего подряд с ручным разбором каждого ключа. Если окажется, что это быстро, то пойдёт в релиз, если нет — оставлю одно-расширенческий вариант.
Avada писал(а):Была мысль о несовместимости системной версии, но поскольку было сказано про Win2000...
Это я ничтоже сумняшеся перекомпилировал в 2010-й Студии, не подумав, что у неё рантайм может оказаться сверх-модным и не поддерживать старьё. Послал письмом пробную версию, собранную 2008-й Студией, глянь.