Выделить и скопировать из режима просмотра (F3)

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
2useven10
Posts: 4303
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 7 times
Been thanked: 218 times

Как открыть/закрыть разделы в панели "Информация"

Post by 2useven10 »

Latest post of the previous page:

Так получилось, поскольку в просмотре нажатия правой и левой клавиш обрабатываются одинаково. Скроллинг тоже работает по любой кнопке.
User avatar
HaRT
Moderator
Posts: 9769
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 128 times
Been thanked: 266 times

Выделение/ копирование текста в Просмотрщике

Post by HaRT »

2useven10 wrote: нажатия правой и левой клавиш обрабатываются одинаково
Хм, и как это мешает реализации привычного выделения протяжкой ЛКМ? (Ну а до-выделение через [b]ShiftLMB[/b] пусть остаётся.)
Туплю, там же при зажатии ЛКМ начинается прокрутка.
Впрочем, на мой взгляд протяжка с зажатым [b]Shift[/b] всё же интуитивнее, чем нынешнее поведение. Сложно ли добавить?
(А заодно бы и блочное выделение, если вместо [b]Shift[/b] зажат [b]Alt[/b]…)
Фар есть инструмент, а не нянька. © 2009 DrKnS
2useven10
Posts: 4303
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 7 times
Been thanked: 218 times

Выделение/ копирование текста в Просмотрщике

Post by 2useven10 »

Это реализация возможности выделения произвольных кусков файла в просмотре с минимальными затратами.
Протяжка логично работает в паре с курсором. Делать курсор надо, но на это времени нет.
Кроме того протяжка хороша для небольших файлов, если тянуть долго это неудобно (больше экрана уже удобство сомнительное). Да и сам механизм 'протяжки' надо делать.
User avatar
HaRT
Moderator
Posts: 9769
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 128 times
Been thanked: 266 times

Выделение/ копирование текста в Просмотрщике

Post by HaRT »

2useven10 wrote: Протяжка логично работает в паре с курсором. Делать курсор надо, но на это времени нет.
Кроме того протяжка хороша для небольших файлов, если тянуть долго это неудобно
Я вижу такие сценарии:
* если нужный фрагмент небольшой, то он в один заход выделяется протяжкой — для этого незачем вспоминать, что тут используется какое-то особенное действие;
* если требуется фрагмент, вылезающий за пределы текущего окна, то его начало/конец выделяем протяжкой, затем проматываем к другому краю и до-выделяем посредством Shift-клика — точно так же, как в привычных редакторах.
И каретка (курсор) не обязательна.
Фар есть инструмент, а не нянька. © 2009 DrKnS
2useven10
Posts: 4303
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 7 times
Been thanked: 218 times

Выделение/ копирование текста в Просмотрщике

Post by 2useven10 »

Это делается относительно просто.
Правда протяжка просто мышкой несовместима с текущим мышиным скроллином в просмотре,
но если делать её с тем же Shift-ом противоречия не будет.
Осталось найти того, кто готов этим заняться. У меня нет достаточной мотивации.
User avatar
citRiks
Posts: 1426
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 435 times
Been thanked: 90 times

Выделить и скопировать из режима просмотра (F3)

Post by citRiks »

John Doe, Мышь - не думаю что решение
прочитал что тут предлагают, обойтись без курсора например - думаю что курсор нужен для и продуктивности и желания работать во вьювере, иначе это какие-то ненужные полумеры.

Вот думаю намакросить что-ли..
технически выполнимо, но сомнения терзают стоит ли того соотношение усилие\польза
Если делать, то пока такие идеи:
+ FFI ReadConsole(..) - переваривать то что имеем на экране
+ far.Text(..) - рисовать курсор на экране
+ far.Viewer.GetFilePos, SetFilePos, LeftPos - знать хотя бы приблизительно где мы находимся в файле
Задача - соотнести произвольную точку на экране с позицией в файле.
GetFilePos соотносим с тем что начитали из ReadConsole, и получаем точную позицию (координату) в файле.
Точная позиция с файлом нужна для привязки куда рисовать (=эмиулировать) визуальный курсор,
иначе он будет скакать непредсказуемо.
Т.е. связка такая должна быть такая:
{координата курсора на экране} <= (уметь переводить в обоих направлениях) => {позиция в реальном файле}
Все согласны?
Есть какие-то еще идеи какими средствами реализовывать?
Ввиду явной пользы обществу, не проще ли это реализовать в самом ФАРе?
чтобы зря луа-писателям не трудится
Last edited by citRiks on Mon 24 Feb, 2020 17:35, edited 2 times in total.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
citRiks
Posts: 1426
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 435 times
Been thanked: 90 times

Выделить и скопировать из режима просмотра (F3)

Post by citRiks »

PS
для простой навигации курсором в просмотрщике сотношение с реальной позицией в файле может и не нужно,
но нужно для нормального многострочного и многостраничного selection, в котором и весь смысл
Last edited by citRiks on Mon 24 Feb, 2020 17:58, edited 1 time in total.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

Выделить и скопировать из режима просмотра (F3)

Post by zg »

citRiks wrote: Mon 24 Feb, 2020 17:29+ far.Viewer.GetFilePos, SetFilePos, LeftPos - знать хотя бы приблизительно где мы находимся в файле
почему приблизительно? всё точно находится.
User avatar
citRiks
Posts: 1426
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 435 times
Been thanked: 90 times

Выделить и скопировать из режима просмотра (F3)

Post by citRiks »

zg,
Приблизительно - потому что с точки зрения вьювера он стоит всегда на начале первой (или второй) строчки которая на экране
сдвинули экран - позиция переехала на другую строчку, и эта строчка опять вторая сверху
далее, это всегда начало строчки, даже если строка длинная и смотря ее мы далеко уехали вправо,
для просмотрщика положение вфахле не изменилось
Наша цель:
курсор может и должен гулять по всему видимому экрану, поэтому берем эту позицию (=GetPos) и от нее как-то добираемся до желаемой позиции на экране
Т.е.
1.) GetPos - абсолютная позиция, всегда вторая строчка экрана - есть
2.) CurPos - позиция (курсора) относительно GetPos, в любом месте экрана - надо вычислить

GetPos приблизительный для нас, потому что для нашей цели "любая позиция на экране" он не подходит,
это будет, для упрощения где-то так:
АбсолютнаяПозиция=GetPos + CurPos
Last edited by citRiks on Mon 24 Feb, 2020 19:26, edited 2 times in total.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
citRiks
Posts: 1426
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 435 times
Been thanked: 90 times

Выделить и скопировать из режима просмотра (F3)

Post by citRiks »

В вашем замедчательном HexEde вообще не углядываю аналогии,
вы там создает кастомный кавдратный layout и творите дальше в нем все что хотите,
а у нас прозивольной длины строчки, еще и wrapping может быть,
еще разделители строк могут быть или двухбайтовые или однобайтовые,
еще и табы, еще и UTF8\unicode\ASCII.
Поэтому у нас во вьювере все плавает, а в HexEditе все стабильно как на кладбище :)
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
citRiks
Posts: 1426
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 435 times
Been thanked: 90 times

Выделить и скопировать из режима просмотра (F3)

Post by citRiks »

Впрочем, сейчас вот что понял
Эмулиремый курсор можно сделать цело-строчный, на всю current line.
это где-то на 80% облегчает задачу при этом удовлетворяя где-то 90% потребности и удобства пользвования
на следующем эволюционном этапе можно начать вычислять уже внутристрочную позицию
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

Выделить и скопировать из режима просмотра (F3)

Post by zg »

citRiks wrote: Mon 24 Feb, 2020 19:27В вашем замедчательном HexEde вообще не углядываю аналогии
он открывается в текущей позиции, она определяется однозначно, не очень понимаю, зачем читать с экрана?
User avatar
citRiks
Posts: 1426
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 435 times
Been thanked: 90 times

Выделить и скопировать из режима просмотра (F3)

Post by citRiks »

zg wrote: Mon 24 Feb, 2020 19:51 он открывается в текущей позиции, она определяется однозначно, не очень понимаю, зачем читать с экрана?
извиняюсь за свою непонятность
я не хочу открывать никакую новую сущность, ни диалог, ни редактор, ни панель, ни еще чего кастомного.
Напротив, я излагаю на тему как оставаться с нашим любимым шустрым вьювером,
и прозрачно-натурально добавить ему такую нехватающую функциональность:
1.) Cursor
2.) rmulti string multi page selection
это два пункта, но на самом деле второй пункт для своей корректной работы должен включать в себя первый.
И я не вижу как это сочетается с открытием нового окна-диалога с custom element? как вы делаете HеxEd.

Мне удалось изложить понятнее?

PS
viewer.GetPos - это всего лишь якорь вверху страницы, а user cursor должен и может гулять по всей странице.
user (человек) двигает этот курсор туда-сюда естественно.
Двигает, оставаясь в пределах user screen, пока не сдвинул в итоге всю страницу (сам это screen уехал).
Если сдвинулся\уехал сам этот screen (=видимый кусок текста), это значит якорь сдвинулся, ок, перерасчет.
Т.е., наша адача - знать точно какой длины цепь (точнее расстояние от якоря) на которой сидит cursor в данный произвольный момент
Last edited by citRiks on Mon 24 Feb, 2020 20:51, edited 3 times in total.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

Выделить и скопировать из режима просмотра (F3)

Post by zg »

очень много текста, а ответ на вопрос отсутствует.
citRiks wrote: Mon 24 Feb, 2020 20:42И я не вижу как это сочетается с открытием нового окна-диалога с custom element?
HеxEd был приведён, как пример точного определения позиции в файле, которая сейчас отображается на экране.
User avatar
DrKnS
Posts: 5889
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 11 times
Been thanked: 363 times

Выделить и скопировать из режима просмотра (F3)

Post by DrKnS »

citRiks wrote: Mon 24 Feb, 2020 20:42 второй пункт для своей корректной работы должен включать в себя первый
Не должен, потому что уже давно есть.
Post Reply

Return to “Предложения и идеи”