ConEmu: Console Emulator — эмулятор консоли

Здесь обсуждаются темы, косвенно связанные с Far.
User avatar
hoopoe
Posts: 263
Joined: Mon 28 Mar, 2005 07:44
Location: Нежный Новгород
Has thanked: 1 time
Contact:

Re: ConEmu: Console Emulator — эмулятор консоли

Post by hoopoe »

Latest post of the previous page:

ааааатлично... попробовал с конманом: выделение/копирование из альтернативной консоли работает как надо, тока текущее выделение не подсвечивается... но это я придавлю в конмане...

и еще, если сделать такой фикс:
файло ConEmu.cpp, line 192: csbi.dwSize.Y = size.Y;
то ConEmu не будет управлять размером консоли и работа в фаре станет более чем удобной... до кучи новый аргумент /BufferHeight будет работать как флаг...
User avatar
hoopoe
Posts: 263
Joined: Mon 28 Mar, 2005 07:44
Location: Нежный Новгород
Has thanked: 1 time
Contact:

Re: ConEmu: Console Emulator — эмулятор консоли

Post by hoopoe »

так, стоп... кривой фикс... с подводными камнями...

вот правильная строка:
csbi.dwSize.Y = csbi.dwSize.Y != csbi.srWindow.Bottom - csbi.srWindow.Top + 1 ? csbi.dwSize.Y : size.Y;

идея такая: если окнo имело вертикальную полосу прокрутки, то вертикальные размеры консольного буфера менять не нужно...
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: ConEmu: Console Emulator — эмулятор консоли

Post by NightRoman »

Zoin
Может, все-таки вернуть сохранение настроек в реестре так, чтобы они не нарушали стандартный формат данных консоли? Нехорошо этот формат менять в принципе. Так просто не принято делать и все тут - по негласному определению культуры программирования, что ли. Но и реально меня это уже приударило разок: одна побочная прога отказалать работать с такими настройками (она была моя, поэтому я это пережил, подправив ее, но это был сигнал, что не все в порядке.)
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: ConEmu: Console Emulator — эмулятор консоли

Post by NightRoman »

hoopoe
Объясни, пожалуйста, на пальцах - в чем именно была проблема, а то, не столкнувшись сам, я что-то пока не пойму.
User avatar
hoopoe
Posts: 263
Joined: Mon 28 Mar, 2005 07:44
Location: Нежный Новгород
Has thanked: 1 time
Contact:

Re: ConEmu: Console Emulator — эмулятор консоли

Post by hoopoe »

система такая: в твоем варианте, когда запускаешь
conemu /bufferheight 1000 /cmd far.exe
то на окне висит полоса прокрутки, и фар не умещается в окно (его приходится скроллировать)... но мы знаем, что фар при старте предпринимает некоторые действия при старте: он уменьшает консольный буфер под размер консольного окна и скроллеры по идее пропадают... вот... но когда мы начинаем менять размер консоли мышом, то оригинальный код опять увеличивал размер консоли до bufferheight и скроллер появлялся обратно... мой вариант смотрит, был ли скроллер, и если не было - то изменяет вертикальный размер буфера, а если был - то не изменяет
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: ConEmu: Console Emulator — эмулятор консоли

Post by NightRoman »

Понятно, спасибо. Но зачем так запускать Фар? Фар (и другие проги, что подгоняют буфер под окно сами) надо запускать без установки высоты буфера:
conemu /cmd far.exe
User avatar
hoopoe
Posts: 263
Joined: Mon 28 Mar, 2005 07:44
Location: Нежный Новгород
Has thanked: 1 time
Contact:

Re: ConEmu: Console Emulator — эмулятор консоли

Post by hoopoe »

да, правильно... но у меня еще и ConMan там проживает... а у него есть альтернативная консоль, которая обычно немалых размеров...
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: ConEmu: Console Emulator — эмулятор консоли

Post by Centaur »

Вот было бы здорово, если бы FAR рисовал панели не во весь буфер, а в размер окна. «Как mc», да.

(И сам испугался сказанного. Кажется, меня сейчас будут обвинять в ереси…)
User avatar
hoopoe
Posts: 263
Joined: Mon 28 Mar, 2005 07:44
Location: Нежный Новгород
Has thanked: 1 time
Contact:

Re: ConEmu: Console Emulator — эмулятор консоли

Post by hoopoe »

не, не будут... я к конману в свое время прикручивал такой хак: фар думал что он во всю панель рисует, а на самом деле он рисовал тока в видимую область (как юниховый mc)... ток там грабля сразу всплыла: при запуске апликации фар сам, своими хуками скроллировал то, что у него под панелями вместо стандартных вызовов виндярного апи... и верхние строчки вывода просто терялись...
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: ConEmu: Console Emulator — эмулятор консоли

Post by NightRoman »

= Experimental BufferHeight 2008.06.20 from NightRoman =

*) включено исправление от hoopoe

*) принципиально реализована работа с выделением в буфер-режиме:
-- при старте устанавливаем QuickEdit режим;
-- установку "контекстное меню по правому клику" игнорируем;
-- при отрисовке учитываем выделение (это не так просто оказалось, возможно,
сделал не все правильно и оптимально).

В итоге выделение \ копирование \ вставка В ПРИНЦИПЕ заработали. Но на деле есть
неприятные странности - выделение может вдруг резко скакнуть до упора вправо или
вниз или и то и другое (причем, какое-то фальшивое выделение, оно вроде не
скопируется, и потом оптимизированая отрисовка эту фальшивую зону не будет
перерисовывать, пока там что-то не будет нарисовано).

В чем дело - понятия не имею, хотя и пытался, не моя эта область-таки. Помогайте.

EDIT: это продолжение, начало эпопеи тут
http://forum.farmanager.com/viewtopic.p ... 410#p33410

EDIT: removed obsolete archive
Last edited by NightRoman on Sun 22 Jun, 2008 11:14, edited 1 time in total.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: ConEmu: Console Emulator — эмулятор консоли

Post by NightRoman »

= Experimental BufferHeight 2008.06.22 =
начало эпопеи тут: http://forum.farmanager.com/viewtopic.p ... 410#p33410

Исправление от hoopoe было с небольшим подвохом - заданная величина BufferHeight
никогда на деле не устанавливалась, а устанавливалась величина из дефолтных
настроек консоли - исправлено.

Исправлены банальные баги в отрисовке выделения. Загадочные скачки выделения
вправо\вниз пока еще остались, но само отображение выделения теперь правильное.

В ПРИНЦИПЕ выделение работает уже почти удовлетворительно (напоминаю на всякий
случай - вся работа с выделением - мышью, копирование и вставка правым кликом).

Но дефекты (скачки выделения) надо бы устранить, конечно. Думаю, устранил бы,
зная их причину, но не знаю. Есть идеи, почему так скачет выделение иногда?

EDIT: removed obsolete archive

P.S. "Russian revolution continues!" (from today's BBC sport news)
Last edited by NightRoman on Wed 25 Jun, 2008 09:13, edited 1 time in total.
User avatar
hoopoe
Posts: 263
Joined: Mon 28 Mar, 2005 07:44
Location: Нежный Новгород
Has thanked: 1 time
Contact:

Re: ConEmu: Console Emulator — эмулятор консоли

Post by hoopoe »

ну ты скоростной :D

вроде работает... а с кривой прорисовкой выделения замечена такая особенность: направление неправильного расширения выделенного прямоугольника всегда от текущей позиции мыша и в сторону от реальной консоли... т.е. поставь консоль в левый нижний угол, окно ConEmu в правый верхний и во время выделения кривой прямойгольник появится от мыша в сторону правого верхнего угла... похоже это сам диспетчер консольного окна пытается с координатами мыша поиграть...
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: ConEmu: Console Emulator — эмулятор консоли

Post by NightRoman »

hoopoe
Да, эффект "скачек выделения в сторону от окна консоли" подмечен верно и стабильно проявляется. Что ж, это уже какая-то наводка, хорошо.
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Re: ConEmu: Console Emulator — эмулятор консоли

Post by Kildor »

Поставил утилиту, порадовала отсутствием значимых глюков и надоедавших ранее багов.

Однако после небольшой работы в редакторе вскрылись две проблемы:
1. странные глюки с пунто свитчером.
(набираю текст «qwerty», нажимаю хоткей для переконвертации, текст переконвертируется в «qцукен», при втором нажатии — в «йwerty».
Конечно можно пользоваться исключительно CtrlAltX, но это надо переучиваться, а главное — автоконвертация от этого никуда не исчезает.
При более внимательном рассмотрении получилось следующее:
Нахожусь в панелях, соответственно всё в командной строке.
раскладка En, строка qw
нажимаю Pause (для конвертации), получаю:
Ru - qц, ещё раз Pause:
En - йw, ещё раз Pause — либо предыдущий шаг, либо
En - й (либо Ru - q), Pause:
yдаляется последний символ, и BS идёт в фар.

Ещё, Qw при конвертации превращается в йц, то есть теряется информация о регистре символов.


2. Нерабочесть EditCompletion (version 3.01)
Есть файл, со строкой «test», дополнение настроено показывать завершение слова, по Tab — слово завершать. В квадратных скобках — то что фар показывает, \t — таб, | — курсор.

Ввожу te|[st], Tab, после чего получаю te\t |[st], Tab » te\t st|

Если запустить фар только с этим плагином, вдобавок ко всему начинаются глюки с раскраской и сохранением этой раскраски.
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Re: ConEmu: Console Emulator — эмулятор консоли

Post by Kildor »

Ещё, использую фар как редактор в некоторых программах (например BBLean), вызываю фар батником вида
@"%ProgramFiles%\Far\conemu.exe" /cmd=far.exe /e%2 %1

При этом получившийся редактор не реагирует на мышь, до тех пор пока не уберёшь и не восстановишь фокус на окне.
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
al666
Posts: 239
Joined: Mon 04 Jul, 2005 08:55
Been thanked: 1 time

Re: ConEmu: Console Emulator — эмулятор консоли

Post by al666 »

Kildor wrote:набираю текст «qwerty», нажимаю хоткей для переконвертации, текст переконвертируется в «qцукен», при втором нажатии — в «йwerty»
Тот же самый глюк. PuntoSwitcher 2.96.

Если запускать консоль без ConEmu - глюк исчезает, т.е. слова транслитерируются нормально.
Post Reply

Return to “Операционные системы, командные оболочки и прочее”