far2l
far2l copied to clipboard
2 small ideas for the Сommand history window
2 идеи для окна вывода истории команд (Alt-F8) и, возможно, окна истории каталогов (Alt-F12):
- Сделать скрываемую колонку в которую выводить дату и время выполнения команды
- Сделать скрываемую колонку в которую выводить каталог в которой эта команда запускалась.
Колонки отражать/скрывать по аналогии как в файловых панелях - Ctrl-0...3
@atolismesh В windows far3 в истории уже давно идёт разбивка по датам (см. скриншот).
Возможно такое поведение будет быстрее портировать. Да и привычнее пересаживаться между far'ами в windows и linux.
Возможно такое поведение будет быстрее портировать. Да и привычнее пересаживаться между far'ами в windows и linux.
Не всегда far для windows нужно брать для образца. :) Под linux часто важно и время выполнения команды, чтобы сравнить со временем измененных файлов и записями в log-ах. Особенно если это рабочий инструмент. Я бы сделал как я описал выше.
1 Сделал пока можно считать в черновом виде, по Ctrl+T. Ньюансы:
- колонка таймстампов первая, так как когда длина строки айтема шире самой менюшки то текущая реализация меню не позволяет сделать вторую колонку чтоб она была видна всегда, а не была задвинута гдето далеко справа.
- механизм автохоткеев назначает горячие буквы по всей строке менюшки, то есть - использует и таймстампы. Не эстетично, по хорошему надо както расширять этот механизм для избирательности по колонкам.
- таймстампы сделал в сокращенном виде: для команд исполненных сегодня выводится только время, для исполненных в текущем месяце - число + время и так далее. Вроде глаз режет не сильно, но зато визуально разделяет сегодняшние и прочие команды. И место экономится опять же...
Посмотрел - удобно. @elfmz можно ли текст в первой колонке с датой и разделителем | выводить другим цветом (например черным), чтобы визуально сразу различать дату и имя файла? Сейчас при пролистывании из-за одного цвета высматривание нужной записи в истории достаточно быстро утомляет.
Еще идея появилась - писать даты в разделителях, как в фар3, но по Ctrl+T показывать колонку с временем. Как такой вариант?
Еще идея появилась - писать даты в разделителях, как в фар3, но по Ctrl+T показывать колонку с временем. Как такой вариант?
Я за. Но хотелось бы фичу с разделителями дат выключаемой (например по Ctrl+D, по умолчанию достойно быть ВКЛ). Иногда из этого окна часть команд надо скопом быстро экспортнуть - я делаю через Alt+Ins и затем вырезать строки с разделителями дат напрягает. Кстати, в far3 и фильтрация по Ctrl+Alt+F на такие разделители адекватно действует.
Также в far3 в истории команд по F3 показывается доп информация (в настоящий момент каталог выполнения команды) - эту фичу быстрее и полезнее перетащить чем мудрить с добавлением третьей колонки.
можно чтоб Ctrl+T по циклу переключало - простой список, список с разделителями-датами, список с разделителями-датами и временем в префиксе.
Посмотрел первый вариант.
Еще идея появилась - писать даты в разделителях, как в фар3, но по Ctrl+T показывать колонку с временем. Как такой вариант?
можно чтоб Ctrl+T по циклу переключало - простой список, список с разделителями-датами, список с разделителями-датами и временем в префиксе.
Я за !
Иногда из этого окна часть команд надо скопом быстро экспортнуть - я делаю через Alt+Ins
Кстати, а вот бы возможность часть команд из этого окна скопом быстро экспортнуть без Alt+Ins, а нормально как-то, без обрезки по правому краю.
можно чтоб Ctrl+T по циклу переключало - простой список, список с разделителями-датами, список с разделителями-датами и временем в префиксе.
Согласен. Но по умолчанию первым вариант как far3 - список с разделителями-датами, а затем уже по кругу: -> список с разделителями-датами -> список с разделителями-датами и временем в префиксе -> простой список ->
Кстати, а вот бы возможность часть команд из этого окна скопом быстро экспортнуть без Alt+Ins, а нормально как-то, без обрезки по правому краю.
Если сюда ещё и выделение нескольких строк с Shift приделавать, то совсем уж комбайн получится. Пока наверное не надо. Давайте сначала посмотрим как зайдут циклическое переключение по Ctrl+T, текст в столбце дат черным цветом и доп.инфа по F3.
Посмотрел вариант из https://github.com/elfmz/far2l/commit/f7b387712e2e310645771ec408cab207a8e6f7e8 С разделителями дней получилось хорошо! Небольшие замечания к текущей версии:
- при нажатии Ctrl+T перебрасывает на последний элемент списка, было бы хорошо сохранять позицию выбранной записи;
- пропали даты из первой колонки для предыдущих дней, что неудобно в случае, когда в один день было много команд превышающих высоту окна и совершенно не видно какой день. Предыдущий вариант в этом отношении функциональнее и рванность ширины колонки тут меньшее зло.
- если есть возможность, то текст другим цветом (наверное черным?) как время в первой колонке (включая разделитель |), так и строки с разделителями дней
Ну все же рваная раскладка с датами в первой колонке не красиво выглядит. Выделения цветом в менюшном классе пока не предусмотрено, но попробую сделать.
Сделал выделение цветом, это позволило еще и несколько знакомест сэкономить. Просто черный не катит - нужен же цвет из темы. Взял первый вариант что в голову пришел - цвет выключенных пунктов меню.
Что касается информативности даты, которой не видно когда много команд, есть идея текст последнего невидимого разделителя добавлять к заголовку меню, типа
═════════════════════ History ─ 2023-06-08 ═════════════════
Сделал выделение цветом, это позволило еще и несколько знакомест сэкономить. Просто черный не катит - нужен же цвет из темы. Взял первый вариант что в голову пришел - цвет выключенных пунктов меню.
Спасибо. Сейчас получилось слишком бледно. Если не заморачиваться с введением нового цвета в теме, то можно взять из текущих Color items: Horizontal menu -> Normal text
Просьба также этим же цветом попробовать отрисовывать на всю длину и строки с разделителями дней, которые --- дата ---
Замеченный баг: для самой древней (верхней) даты не показывается строка --- дата ---
Offtop: Позволю себя попросить Вас посоветовать путь решения в https://github.com/elfmz/far2l/issues/1179#issuecomment-1576149932 - уж очень хочется закрыть тот Issue, к тому же вроде бы элегантный путь наметился.
Раз уж тут идёт работа с историей допишу следующее неудобство:
При использовании истории (наткнулся в Alt+F12) и перехода на NetRocks-каталог ВСЕГДА появляется окно login/password. Даже, если уже открыто в этой же панели это же соединение! Причем безальтернативно, даже если в настройках NetRocks пароль сохранён или выбран альтернативный способ соединения (по ключу).
Соответственно перейти благополучно удаётся только в случае, если допустим вход по login/password и сам пароль помнишь - резко сужает юзабельность и удобство.
Если есть возможность, то было бы удобно следующее поведение:
- если это соединение открыто на текущей или противоположной панели, то переходить сразу без диалогового окна
- если соединение не открыто, то обязательно выдавать диалог, но с возможностью использовать запомненные параметры соединения из NetRocks
После последних изменений в окнах слетела центровка разделителей:
- в Location слетела центровка разделителя Plugins (см. скриншот - сдвиг на один символ).
- в выборе кодировок также сдвижка на 1 символ
В какой момент сломалось не обратил внимание. В версии far2l 12b9e9e (заведомо до введения и времени и цвета) разделители центрировались правильно.
вроде поправил
вроде поправил
Ага. Сдвижка разделителей в диалогах Location, Code pages и т.п. вроде полностью поправлена.
Также частично поправлено пропадание самой верхней строки с датой. Изначально сразу после запуска far2l при первом открытии Alt+F8, Alt+F11 или Alt+F12 её нет, хотя ползунок справа не на самом вверху, но выше не прокручивает:
После Ctrl+T сверху разделитель с самой старой датой расталкивается, но не сразу - необходимо закрыть и снова открыть историю.
Обнаружилась ещё одна свежая особенность в меню в текущей версии по сравнению 12b9e9e все строки имеют отступ слева 1 символ (ранее были 2 символа), тогда как справа после комбинаций клавиш отступ остался 2 символа. И теперь галочки в меню Left и Right прижаты к тексту (ранее имели пробел). Попробовал сам исправить, но не сообразил где.
Также углядел отсутствие отступа после текста заголовка . Это исправил и заслал в #1699
Да отступ я уменьшил, этот отступ был нужен только для рисования треугольничка горизонтального скролла длинной строки по Alt+влев\вправо, мне показалось это черезчур расточительным, при скролле вправо вполне можно съедать самый левый символ.
Да отступ я уменьшил, этот отступ был нужен только для рисования треугольничка горизонтального скролла длинной строки по Alt+влев\вправо, мне показалось это черезчур расточительным, при скролле вправо вполне можно съедать самый левый символ.
Тогда ясно. Можно для симметрии ещё и справа уменьшить.
Ранее было симметрично:
Теперь же получаются несоразмерно бъющие в глаза отступы в меню слева и справа (после комбинаций клавиш):
@elfmz спасибо за исправление с разделителем самой древней (верхней) даты. Ещё сопуствующая мелочь: сейчас, если перейти на самые древние даты, то в заголовке окна только History без даты. Или это так и задумано, чтобы дата засоряла заголовок только если прокрутились ниже чем на окно?
Или это так и задумано, чтобы дата засоряла заголовок только если прокрутились ниже чем на окно?
ага
Предложения по юзабельности истории вызревшие при обсуждении нововведений в тг-чате:
- Из истории, например, по Tab переходить на активной панели к
- из History command переходить к каталогу в котором была запущена команда
- из File view history переходить к каталогу и подсвечивать файл который смотрелся/редактировался (в случае если Alt+F11 открыт из просмоторщика/редактора дискуссионно делать ли и, если делать, то перебрасывать ли сразу на панель или предупреждать как-то пользователя и просить согласие).
Именно в использовании для этого Tab нет полной уверенности, но вроде она здесь наиболее логична из свободных, хотя во избежании случайного нажатия может навесить на Ctrl+Tab.
- Сейчас история команд также засоряется результатами нажатия Enter на панели, что не всегда удобно.
В исходнике https://github.com/elfmz/far2l/blob/0e41eeca3676828afc752240bf9311a206498e53/far2l/src/cfg/config.hpp#L66 присутствуют флаги
EXCLUDECMDHISTORY_NOTPANEL = 0x00000004, // не помещать в историю команды выполнения с панели
EXCLUDECMDHISTORY_NOTCMDLINE = 0x00000008, // не помещать в историю команды выполнения с ком.строки
Однако вроде бы нигде это не вкл/выкл для пользователя в настройках - поправьте, если не нашел.
Было бы неплохо добавить управление ими в окно System settings (возможно в будущем вообще перенести все настройки Истории из перегруженного System settings в относительно свободный AutoComplete & History settings).
Сделал пока чтобы из диалога с директорией который по F3 можно было перейти в директорию и вкопипастить в командную строку команду. В принципе можно и на таб какой это повесить, если прям надо..
Сделал пока чтобы из диалога с директорией который по F3 можно было перейти в директорию и вкопипастить в командную строку команду.
Радостно перекомпилировал, открыл Alt+F8 и упсс.... Пока не заглягул в 5f044fa и не увидел что F3 работает только для записей с Extra данными, а без них молча игнорирует. Пришлось позапускать новых команд.
Замечательная идея кнопка Run-up с перебросом не просто в каталог, но и команду в командную строку!
Предлагаю расширить окно показом полноценной информации:
╔═══════ History Command Info ══════╗
║ Command: тут команда ║
║ Directory: тут каталог ║
╟───────────────────────────────────╢
║ { Close } [ To dir ] [ Run-up ] ║
╚═══════════════════════════════════╝
Строчка Command, чтобы видеть команду даже когда это окно перекрывает середину истории. Close - т.к. на кнопке слово OK немного путает, что по ней просто закрытие окна. To dir - не всегда надо засорять командную строку именно этой командой, а достаточно просто быстро попасть в нужный каталог.
В принципе можно и на таб какой это повесить, если прям надо..
Более насущно в Alt+F11 переходить на панели прицельно к файлу из истории (тут основные use cases скопировать его или переименовать) , а в Alt+F8 переход к каталогу уже придумался для аналогии.
UPD: С удивлением увидел, что в просмоторщике/редакторе подобное поведение навешено на Ctr+F10. Наверное и тут надо не плодить дублирующиеся сущности, а для переброса на панель использовать Ctrl+F10.
Спасибо за https://github.com/elfmz/far2l/commit/ff0f7e55add3b52c6ec0ad267094fa5e15d81152 С командами набираемыми в командной строке всё замечательно! А для файлов, попадающих в историю после запуска с панелей по Enter, каталог не сохраняется и в строке Directory: пусто.
Для таких случаев, если не запомнен каталог может кнопки [ To dir ] и [ Run-up ] делать неактивными?
Также было бы неплохо поля Command и Directory сделать скроллируемыми read-only (на случай уж совсем длинных команд или каталогов).
С моей точки зрения данная фича приближается к идеалу, а какое мнение топикстартера @atolismesh ?
Приветствую! Сделано шикарно! Уже пользуюсь. Но мне категорично не хватает 3-й колонки, открываемой по дополнительному Ctrl-T, в Command history (Alt-F8):
2. Сделать скрываемую колонку в которую выводить каталог в которой эта команда запускалась.
Для меня по истории остались следующие пожелания (перечисляю в порядке убывания важности):
- цвет колонки с временем сейчас очень блеклый - сделать, например, чёрный цвет символов
- ~~для файлов, попадающих в историю после запуска с панелей по Enter, каталог не сохраняется и в строке Directory пусто~~ (fixed in #1718)
- в F3 поля Command и Directory сделать скроллируемыми read-only (на случай уж совсем длинных команд или каталогов)
- настраиваемость пользователем
EXCLUDECMDHISTORY_NOTPANELи возможно такжеEXCLUDECMDHISTORY_NOTCMDLINE - проблема Alt-F12 в NetRocks-каталог всегда требует логин пароль вместо использования настроек соединения из NetRocks)
- поменять хранение истории c .hst на a-la более unix формат, например как в логах
тогда поиск и фильтрацию истории можно будет делать не только вручную внутри far2l по Ctrl+Alt+F но и unix-way черезYYYY-MM-DD hh:mm:ss command SEP dirgrepи т.п.
Сам я не настолько знаком с кодом far2l, чтобы что-то из этого в ближайшее время начать расковыривать самостоятельно.
В телеграм-чате привели вот такой скриншот с древностями с некорректной датой
который похоже связан с #1292
Вроде теперь уже не актуально, но добавить проверку корректности дат при выводе возможно имеет смысл.