Как стать автором
Обновить

Комментарии 194

Quake-режим — мегазачет, давно о таком мечтал, думал было даже грешным делом самому написать…
Справедливости ради, «Quake» вполне возможен и для терминалов не умеющих такое из коробки. Например здесь рассказывают как прикрутить Quake для Console2 с помощью AutoHotkey. А недавное про rCons статья была.
Ан нет, беру свои слова обратно, неправильный там Quake-style )

Тут просто показывается исключительно декоративная анимация прорисовывания окна сверху вниз (даже не сдвиг окна, а именно постепенное увеличение отображаемой области, самую нижнюю строчку консоли видно только в конце анимации), в этом время содержимое окна не обновляется, печатаемые символы не отображаются до конца анимации…

Пришлось оставить мгновенный показ окна, но по хоткею…
Поменял анимацию на «Slide».
Странно. Баг мб.
Почему в Quake-режиме не меняется размер окна? Ни курсором, ни в main>size&pos. Приходится отключать квейк, менять размер и включать обратно.
Для баг-репорта информации недостаточно. Версия, скрин, настройки, что значит не меняется…
В личке. :)
У меня Quake-режим по-особенному работает для Putty.

Для cmd.exe и FAR'a Quake-режим работает красиво:
Картинка 1


А вот для Putty окно просто отрисовывается сверху вниз, что не очень:
Картинка 2


Версия 140124 x86.
Консольные приложения ConEmu отрисовывает, а Путти — приложение графическое и с ним анимации красивой не получится.
В ReactOS программа жалуется на проблему со шрифтом Lucida Console
Наверное надо Issue со скриншотом создать, чтобы не забылось. Или там люциды вообще нет?
Возможно нету.
Я создал у нас баг, там есть скриншот.
jira.reactos.org/browse/CORE-6868

А так программа кажется даже работает.
Не. Я про другое подумал. При работе в Windows ConEmu нужно чтобы в консоли был выставлен TrueType шрифт, иначе не будет юникода. А выставить TrueType можно только для тех шрифтов, которые зарегистрированы в HKLM (на что диалог и ругается).
Для Wine эта ругань специально убиралась.
Если в ReactOS это требование не актуально — ее тоже можно убрать, если расскажете как сдетектить ReactOS из приложения.
Вот что найдено на их форумах:

===
Before calling GetVersionEx, you should set the Version variable to all nulls, then set Version.dwVersionInfoSize to SizeOf(Version) like you do now. Call GetVersionEx. On return, if you're running on ReactOS, Version.szCSDVersion will contain two strings. The first string is the Windows compatible service pack number, «Service Pack 6». At the end of that string is a null byte. Following that null byte is the ReactOS version string (something like «ReactOS 0.2.5-RC1 (Build 20041227)».
When running on Windows, there will be only one string in Version.szCSDVersion.
===

www.reactos.com/forum/viewtopic.php?p=1145
Может в 2004-м году это и работало — но сейчас нет. Сделал проверку ключа реестра
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
«ProductName»=«ReactOS»
Windows 7, конфигурация с одним экраном, стартую cmd.exe под ConEmu, максимизирую окно ConEmu стандартной кнопкой в правом-верхнем углу, потом пытаюсь вернуть ею же в обычное состояние — размер не возвращается к прежнему. Окно остается максимизированным, просто отлипает от краев экрана. Непривычно и неудобно :( С остальными окнами на этой же системе все пучком.

Спасибо за проект. Ранее не сталкивался, теперь же must have, однозначно!
Хм. После легкого переконфигурирования (вроде только опции из раздела Main -> Size & Pos щупал) появились проблемы с перерисовкой. Т.е. после изменения размеров окна ConEmu контент не перерисовывается. Даже сброс настроек не помог исправить проблему.


Как и в предыдущем комментарии использовался ConEmu 130102 [64]
Судя по скрину — это не проблема с перерисовкой, а то, что осталось в консоли после уменьшения ширины буфера. ConEmu показывает то, что есть в «реальной консоли» (Ctrl+Win+Alt+Space).
Хм, так и есть, вы правы. А можно ли ресайзить консоль без потерь? Понимаю, что виндовая консоль не позволяет делать свой ресайз на уровне окна, лишь изменением ширины буфера. Просто стало интересно.
Теоретически — можно. Когда соберусь сделать виртуально-бесконечный буфер — сразу все получится, т.к. информация о выведенном тексте будет храниться уже не в консоли, а в моем внутреннем буфере, и потери строк уже не будет.
Собственно к этому и клонил, думал, что виртуальный буфер уже реализован (был смущен опцией BufferHeight [не вчитался в хинт], думал это и есть свитч между оригинальным и виртуальным). Теперь вижу, что только в RoadMap'е. Ну, что же, успехов вам! Проект очень интересный.
Отличная программа!

Жалко только, что до реализации бесконечного буфера Ваши руки не дошли… :(
Я тоже недавно подумал о создании терминала.
планировал сделать так

Но есть одна проблема. Как выделять текст из двух компонентов ??

Думается мне они эту консоль графически разрисовывают и он не основан на компонентах CEdit и CRichedit.
Отсюда и всякие проблемы с кареткой.
Писать с нуля консоль ?? Неее много костылей, тут потребуется по крайней мере месяца 3, чтобы показать консоль и не стеснятся
Как выделять текст из двух компонентов ??

Не понял. Каких таких компонентов?

«месяца 3» это я бы сказал не просто сильно заниженная оценка, а очень сильно заниженная.
Здравствуйте. Во-первых, большое спасибо за ConEmu. Перешел на него после Console 2 и был несказанно рад.
Во-вторых, если у вас найдется свободное время, не могли бы вы посмотреть вот это issue
Прошел по ссылке с MinGW — ничего не понял. В архивах две папки с двумя бинарниками conemu и парой библиотек. Никаким sh.exe или установочником не пахнет.
Подскажите, какие действия нужно выполнить, чтобы подключиться к удаленной машине по ssh, используя ConEmu? Привык через xshell, но хотелось бы перейти на quake-подобный терминал.
Cygwin + SSH?
В том то и вопрос, как связать\запустить? Где почитать?
Что почитать? Вы не знаете как запустить ssh.exe? Или не знаете, как используя ssh.exe подключиться к удаленной машине?
Я не знал о существовании ssh.exe. А путти не запускается в терминале.
путти запускается в ConEmu, о чем написано в статье.
Прошу прощения, действительно невнимательно читал. Точнее, неверно понял, нужно было пробовать, а не болтать.
Кстати, xterm от netsarang тоже запустился в conemu, это, наверное, будет самым удобным выходом для меня.
А вот при попытке запустить путти, не все так гладко прошло. Зависает терминал. Windows 7 x64, последняя Putty x32. Сначала говорит, что процесс id=такой-то — was attached to conemu, потом пишет путь до Putty, выводит диалогов окно, а после нажатия кнопки Open — ничего не происходит. Через 2 минуты путти вылетает.
Подозреваю, что версия ConEmu не последняя, а «Stable».
Обновил до последней, то же самое.
Странно. Если в сборке 130104 то же самое — лучше новый Issue создать.
С крайним апдейтом устаканилось, спасибо. Собственно, программа предложила обновиться повторно уже после написания поста.
Человеческое Вам спасибо — пользовался с фаром долгое время. Под виндой 100% мастхев.
Пользуюсь уже пару лет наверное.

Пока только один глюк заметил. Не знаю как сейчас, раньше можно было привязать ConEmu к консоли, т.е. как открываешь cmd, сразу автоматом и ConEmu стартует. Не было проблем, пока не попробовал юзать «Командную строку Visual Studio 2010». Ну которая bat-ник с прописыванием окружения. В общем открывается сразу 2 вкладки ConEmu и обе без возможности ввода. Думаю, видимо стоит отвязать cmd от ConEmu.

Из недостатков, не очень нравится присоединение Putty, как-то ненативно получается. А просто консольный SSH вроде не особо удобен.

Если говорить про красоты, то было бы клево, если бы можно было сделать прозрачность не всего окна, а только области терминала, как это в Linux делается. Ну чтоб заголовок окна обычный, а терминал просвечивает :). Я правда не уверен что такое вообще можно сделать в винде, API прозрачности вроде сразу на все окно работают. Хотя у Miranda IM что-то такое есть в clist_modern. Но это мелочи.
раньше можно было привязать ConEmu к консоли, т.е. как открываешь cmd, сразу автоматом и ConEmu стартует.

Это и сейчас можно. «Register ConEmu autorun» на вкладке ComSpec. Повторилось, если ConEmu не был запущен.
не очень нравится присоединение Putty, как-то ненативно получается.

Хм, заголовок окна PuTTY? Так его отключать можно в настройках ConEmu.
если бы можно было сделать прозрачность не всего окна, а только области терминала

Есть в TODO. Это можно сделать для окон со стилем WS_EX_LAYERED.
Подскажете, где можно отключать заголовок окна Putty? Можно ли отключить заголовок у других приложений, например xshell?
Последняя версия ConEmu, Settings -> Appearance -> Hide caption of child GUI windows
А как при отключенном заголовке показать меню Putty (about putty, new session, restart session и тд)?
Ага. Заголовок изначально для меню и оставлялся.
А никак отключить заголовок, но оставить меню?
Теоретически, меню должен AltSpace показывать. Но это не сработает, если программа обрабатывает это нажатие «по своему».
В планах прикрутить вызов меню к меню таба или еще как-то…
У меня как раз по Alt+Space в nano в Putty должен быть переход на слово назад, но вызывается такое же меню, которое появляется по правому клику по табу.
Правда у меня версия где-то недельной давности. Будет время — обновлю, проверю там.
Еще зависит от того, где сейчас фокус ввода: в последних версиях его можно автоматом в дочернее приложение ставить.
Дочернее некуда :) Редактируешь текст в nano в putty, жмешь alt+space, получаешь меню ConEmu
О. В крайней версии норм — меню не открывается по Alt+Space — приложение перехватывает.

Кстати, апдейтер ругнулся на ConEmuHk.dll — не захотел замещаться. Попробовал удалить руками — тоже не хочет, хотя все консольные приложения закрыты.
Проверил taskman — оказалось, что висит куча процессов putty и far, которых нигде кроме таск менеджера не видно
В штатном режиме должно все нормально закрываться. Интересно было бы взглянуть на минидампы «зависших» приложений если повторится.
Если смогу сгененировать, скину :)

Кстати, есть функция «Duplicate root», а просто «Duplicate» не ожидается? Не охота выбирать доп параметры или жать Enter, чтобы запустить еще один экземпляр Putty

И можно как-нибудь поменять дефолтную команду при создании новой консоли? У меня cmd.exe используется довольно редко, а вот Putty запускать приходится очень часто :)
Смысла не понял. Как вы смогли запустить путти не как root?
Все. Вопрос снят — не понял сначала смысла «duplicate root». Возможно есть смысл убрать слово 'root' — для админа *nix все обретает другой смысл :)
Не согласен… Возможно, что вопрос в терминологии, но это не просто «Duplicate». Запустите например баш и в нем Vim. Что должен думать юзер, вызывая «Duplicate...»?
Все равно «root» не отображает смысла (и как видим, может внести некоторую путаницу). С учетом размера меню туда вполне поместится «Duplicate terminal» или «session», как в Putty. Хотя это мне тоже не нравится :)
«Duplicate terminal» по мне так должен «склонировать» состояние терминала полностью (читай — со всеми процессами).
А вот «Копия корневого процесса» (что есть смысл) я по другому перевести не могу.
Duplicate parent

Fork root (fork автоматически ассоциируется с процессом, а не со специальным пользователем)

New similar terminal (многословно, но из всех вариантов — этот единственный, который я воспринимаю как надо; «Duplicate root» понятностью тоже не страдает)

Ничего лучше что‐то не придумывается.
«Duplicate parent» и «Fork root» — имхо, хорошие варианты. Путаницы значительно меньше.
«New similar terminal» — тут действительно кто-то может подумать, что должно все процессы появиться. Хотя на «duplicate session» в putty вроде как никто так не думает :)
у меня, кстати (вин 7х64)Ю меню патти и при включенном заголовке не работает — панель заголовка есть, а меню по пкм нет…
и мне кажется, что кроме нескольких команд меню (например, рестарт сессион), оно там не особо надо, поскольку новая сессия, и все что с этим связано, будет открывать терминал патти, а не conemu — хотя, может быть, я и ошибаюсь…
я для себя сделал так: все свои ssh -сессии открыл одну за другой в новых вкладках conemu, они сохранились в истории и выходят в выпадающем списке, благо их у меня не много…
Меню putty замечательно вызывается по лкм на иконке в заголовке putty.
сорри, да, по иконке вызывается… тормознул…
Наиболее полезное для меня «restart session». Ну и кроме того — есть ведь такая вещь, как 'Change settings'

Кстати, я сам пару минут пытался вызвать меню по пкм по заголовку, как это всегда делается в путти. Кое-как нашел лкм на значке
Спасибо! Долгое время пользуюсь, все замечательно! Рад видеть на хабре ;).
Quake slidedown сделал мой день. Спасибо большое!
Расскажите пожалуйста, а почему в Windows вообще такая большая проблема с эмуляторами терминала? Насколько я знаю, все что есть (console2 и ваш) работают как обертка над cmd, это так? И если так, почему нужно привязываться к cmd, а не с нуля написанное? И еще мне странно что в Microsoft PowerShell сделали, а терминал забыли.

Или вот например, почему нельзя взять за основу putty и заменить им виндовый эмулятор терминала?

И да, спасибо большое за вашу работу, буду использовать :)
В самом начале статьи
стандартное консольное окошко, которое часто ошибочно называют «cmd.exe»

требуется работа с консольными приложениями, использующими консольное API или ncurses: например Far просто не запустится в mintty или PowerShell ISE;

Так что эмуляторы работают как обертка над консолью. Реализация же настоящего терминала «с нуля» если и возможна (сомневаюсь, если честно), то с невменяемым количеством кода. Работа API заточена на специальные хэндлы, которые совсем не пайпы, хотя на первый взгляд ими кажутся. И даже если написать хуки всех консольных функций (которых наверное около сотни), то не факт, что реализация получится достойной.
Т.е. тот же Far использует кучу чисто виндовых консольных API, которые привязаны к этому самому «стандартное консольное окошко, которое часто ошибочно называют «cmd.exe»»?

Потому что тот например любой софт использующий ncurses удовольствуется любым эмулятором терминала совместимым аж с VT-100.
Да, Far использует, хотя бы, WriteConsoleOutput.
На счет ncurses — признаюсь, сам не не пробовал, возможно неправильно понял thread на gmane.org
В Microsoft сделали PowerShell ISE и решили что хватит. Наверное, типа, зачем юзеру или админу запускать в консоли что-то сложнее .ps1-скриптов или простейших утилиток, которые довольствуются printf…
Вот кстати их идея разнести stdin и stdout сама по себе офигенная. Я начал ею пользоваться в никсах, бывает удобно. Делается так:

pastie.org/private/ow0pqn59bhkidjvzzx2t6a

Весь ввод внизу, весь вывод вверху, цвета сохраняются, работают даже mc и vim (а фигли — tail эскейп последовательности в верхий буфер послушно посылает), только ругаются на терминал и вим курсор не рисует.
А, да — я эти извращения проделываю в screen, но подойдет что угодно, хоть tmux, хоть два окна терминала.
Maximus5, большое вам спасибо — как и многие, пользуюсь ConEmu уже несколько лет. Не подскажете, а можно ли сделать более удобную прокрутку консоли, без необходимости каждый раз тянуться мышкой к Alternative Mode?
О чем именно речь? В смысле, зачем включать Alternative Mode?
Если речь о фаре — то есть Win+A (да и Win+Alt+K рекомендую прошерстить).
Если не о фаре — то Ctrl+PgUp/PgDn и так работают.
Вот, например, я только что выполнил у себя pip install scipy --upgrade. Вывод получился на несколько страниц. В Far 2.0.1807 Win+A (я так понял, что это то же самое, что и кнопка Alternative Mode справа вверху) даёт просто поскроллить страницу, при этом отключая возможность ввода в консоль с клавиатуры. В Far 3.0.3000 та же самая последовательность действий выдаёт просто чёрный экран. Можно ли как-нибудь сделать нормальную прокрутку без переходов в какие-то другие режимы, или это связано с фундаментальными техническими ограничениями?
Про «Far.exe /w» знаете? В 3.0 плагин ConEmu установлен? Версия ConEmu последняя?
Нет, не знаю. Нет, не установлен, где его взять? Да, теперь последняя.
Только всё равно по-прежнему Win+A выдаёт чёрный экран.
Начиная с какой-то сборки Far 2.0 появился ключик «far.exe /w», позволяющий фару работать с длинным буфером, то есть не убирать прокрутку. Это как вариант.

Плагин ConEmu.dll для фара содержится в дистре ConEmu. О плагине есть предупреждение в разделе установки.
Непонятно тогда, почему /w не включён по умолчанию.
Сейчас взял другой компьютер с Win x64, снёс там старую версию ConEmu, поставил новую, Far3, прописал в команде запуска ключ /w. Всё вроде как работает, в том числе и Win+A, и Win+Alt+K. Плагин, кстати, тоже установился — не знаю, почему на другом компьютере это не произошло. Единственное — полоса прокрутки появляется не когда курсор находится у края экрана, а чуть левее. Спасибо за советы :)

Насколько я понял, после включения TrueMod в Colorer'е настройка «Color style» перестаёт на что-либо влиять. Может быть, стоит это как-то подчеркнуть в интерфейсе, скрыть её, например?

P.S.: тема «Black (scarlet)» великолепна!
«Color style» это про что? Если про 16-цветные схемы, то если приложение выводит не индексированный цвет, а RGB значение — понятно, что будет использовано последнее.
Вот этот Color style:

Честно говоря, мне было ни разу не понятно, что эта настройка перестаёт играть роль, когда включён True Color, пока я не выяснил это методом тыка, попереключав её несколько раз и не увидя никаких изменений. Может, хотя бы подсказку добавить, типа «this option has no effect when TrueMod is enabled»?
Я вижу два «Color style»: один для 4-битного режима, а другой для 24-битного. Как бы все логично.
В любом случае, предложение не по адресу — я не автор колорера. Есть тема на форуме фара и сайт колорера.
Пардон. Я, конечно же, имел в виду верхний. И извините, что не по адресу )
/w это «новый режим» (которому уж года два как), имеющий некоторые проблемы с UserScreen-ом. Да и полосы прокрутки в консоли олдскульных пользователей раздражать могут… Совместимость короче.
Странно это. Почему бы не сделать, наоборот, флаг для отмены этого режима? Тогда пользователи, у которых нет времени на то, чтобы прочитывать документацию каждого используемого приложения в поисках новых фич, не будут узнавать об обновлениях двухлетней давности по чистой случайности :)
Вопрос не ко мне. Весьма спорные, с моей точки зрения, нововведения включаются по умолчанию, а другие востребованные — остаются отключенными. Это уже от разработчиков фара зависит.
Кстати, при нажатии Win+Alt+K не происходит вообще ничего.
В последней версии ConEmu? Сомневаюсь что-то… Наверное «Stable» установлен?
Да, stable. Сейчас скачаю версию 130102.
Огромное вам спасибо за такую круть!
полноценная поддержка xterm 256 colors
Интересно, а xterm 24-bit color будет? Xterm позволяет указывать 24‐битный цвет в виде последовательностей \e[48;2;{R};{G};{B}m (фон, цвет текста — 48 вместо 38) (все цифры — десятичные, от нуля до 255).

Я сейчас пилю vim для поддержки 24‐битного цвета и хотелось бы видеть эти цвета в качестве фактического стандарта. Известно, что, по крайней мере, konsole также поддерживает эти цвета.
Можно. В первый раз слышу про xterm 24-bit.
Описание есть здесь, искать «Character Attributes (SGR)», последний абзац. Кстати, у меня наверху опечатка: должно быть «38 вместо 48», конечно.

Там написано, что это ISO-8613-3. И ещё там написано, что xterm не поддерживает 24‐битный цвет, вместо этого используя ближайший из 256‐цветной палитры (что интересно — человек, давший эту ссылку также пропустил сей факт). Эксперимент показал, что это утверждение верно, но konsole при той же последовательности выдаёт реальный 24‐битный цвет, а не приближение. Теперь мне надо искать какой‐то ещё терминал. Сейчас установлю ещё 13 терминалов и потом скажу, кто ещё поддерживает 24‐битный цвет.
Сборка 130104. Добавлен 24-битный цвет xterm. Пока что с теми же ограничениями что и 256-битный цвет, то есть буфер/прокрутку лучше просто отключить.
Прикольно. Кроме konsole полной (и вообще какой‐либо) поддержки 24‐битного цвета нет просто ни у кого из терминалов, имеющих хотя бы одну стабильную версию (rxvt-unicode, aterm, eterm, evilvte, mlterm, mrxvt, sakura, xvt, xfce4-terminal, valaterm, rxvt, roxterm, kterm, gnome-terminal).
НЛО прилетело и опубликовало эту надпись здесь
Может будете вести дерево исходником на GitHub вместо Google Code?
git а пока не осилил, да и смысла особого не вижу. Хотя на GitHub есть редирект в svn гуглокода.
Не особо. Не дает ответа на вопрос «зачем», да и в Express оно скорее всего не вставится.
У меня стоит Ultimate поэтому не обращаю внимание :)
о, и мне :)
Лучше mercurial и bitbucket. На него легче перебираться с svn. Хотя главное здесь не то — на googlecode неудобно вести совместную разработку: bug tracker куда как хуже конкурентов, даже bug tracker’а github; нет pull request’ов (впрочем с svn они невозможны); нет многих возможностей вроде annotate, автоматического создания архивов с исходниками (если человеку неохота ставить subversion), показа изменений бок о бок, и т.д.
Большое спасибо за ConEmu! Помогает удивлять местных коллег и демонстрировать преимущества консоли :)

Такой вопрос, а можно ли в Far под ConEmu выводить иконку файла в обычной файловой панели перед его именем? Т.е. что-то среднее между обычным режимом и Tiles View (вроде details view в Explorer).
Иконка перед именем файла — в планах.
Нашел как-то восторженную статью у Хансельмана, и с тех пор всегда под рукой. Большое спасибо!

По поводу улучшений: скачал сейчас последний билд и долго и нудно пытался найти настройку под длительность slide анимации в quake style mode, пока не догадался заглянуть в сорцы. Оказалось захардкожено. Есть какие-нибудь варианты? Для меня текущие настройки — это дико медленно.
А скорость выезжания в quake style нигде не регулируется? Хотелось бы ускорить раза в два\три.
Добавлю настройку
Спасибо!

Вообще, офигенная тулза. Из статьи, кстати, много нового узнал.
Настройка длительности анимации добавлена. Флажки переехали на вкладку Appearance.
Присоединяюсь ко всем.

Давно искал подобную вещь
Все круто, но хочется просто минимализма в стиле minTTY, этого монстра можно обрезать до такого состояния. Плюс желательно с простенькими приятными на вид табами и нормальной хистори.
А зачем вам второй mintty?
Потому что первый не работает нормально с powershell'ом.
НЛО прилетело и опубликовало эту надпись здесь
Ну и как сравниваете? Я-то могу задрать «FPS» до небес, только зачем?
НЛО прилетело и опубликовало эту надпись здесь
И для кого документация пишется… Даже в этой статье упомянуто значение флажка Inject ConEmuHk. Отключите его — раз, не говорите про «скорость вывода» — два. При чем здесь «скорость вывода»?
Для мира Windows общеизвестный терминал только один – стандартное консольное окошко

Я долгое время использовал Console (by Marko Božiković). Более-менее эстетичная штука с прозрачностью и XML-конфигами. Но в один прекрасный день столкнулся с тем, что забыл как там выделить и скопировать текст и перешёл обратно на стандартную консоль Windows.

Известных шеллов больше, их целых два: cmd.exe и powershell.exe

А как же 4DOS/4NT (ныне Take Command)?
Лично мне 4NT мне показался диким адом, плюс он еще и платный. У меня он оставил впечатление unix-way шиворот-навыворот. PowerShell тот же — вызвал намного меньше отторжения. А вообще, coreutils из msys + полный пакет gnuwin32 + perl под виндой неплохо живут и из-под стандартного cmd (99% задач, я бы сказал, а для остальных вызываю bash из msys).
Лично мне 4NT мне показался диким адом,

Ну, это лучше чем ничего. Во времена DOS и NT4 выбор был не велик. Кстати bash для скриптинга тоже «не айс» по моему мнению. Вот сделали бы что-нибудь на подобие Groovy (полноценный, современный, сравнительно удобный сценарный язык с кучей доступных библиотек) поверх CLR (.Net) стандартным компонентом системы — цены бы им не было.
плюс он еще и платный

На сколько я понимаю, сейчас бесплатный TCC/LE — это и есть классический 4NT, а платна только версия с IDE и дебаггером.
полный пакет gnuwin32 + perl под виндой неплохо живут и из-под стандартного cmd

Тоже пользуюсь gnuwin32, но удалить кавычки из файла командой tr -d \" < infile > outfile лично у меня в винде не получилось — что-то оно со сколько-нибудь сложным перенаправлением ввода-вывода не очень справляется, похоже… :-(
Да, баги есть, еще какие, но в целом — неплохо.
Что я видел, например: под кэшированном доменным аккаунтом все, что использует обертки из msys-1.0.dll, запускается по минуте, а то и больше (ищет логон-сервер, вытягивает имя пользователя и т.д., извращенно мучая WinAPI при этом). В гневе патчил прямо в бинарном коде пару раз, но так и не зафайлил баг-репорт, спасибо, что напомнили :)
Перенаправлять оно нормально умеет, а с кавычками, если не помогают эскейпы (\ и ^), то только коды символов, если повезет.

tr -d \042 < infile > outfile

Еще у бинарной сборки ggw32 есть феерические приколы с флагами configure, с которыми их собирали, что в редких случаях тоже дает прикурить.
Console не прижился — неудобно в нем с Far-ом работать.

Есть еще TCC/LE (бесплатная версия шелла из TakeCommand).

Но все-таки, о них мало кто знает (это судя по пользователям Far).
Огромное спасибо за статью, пользуюсь уже много лет и тем не менее узнал много нового!

… запускается в режиме админа (после подтверждения UAC)

Вот если бы ещё была возможность запускать conemu с правами админа без надоедливого окошка UAC — было бы просто здорово (под Windows 7 это иногда бывает нужно).
Сейчас я просто создаю ярлык для запуска conemu, пользуясь вот таким «хаком»:
Run UAC restricted programs without the UAC prompt
(И этот хак не очень хорошо работает при использовании desktops от Марка Руссиновича — окошко открывается всегда на первом десктопе).
Если бы подобная функциональность была доступна «из коробки» — было бы очень удобно.
Не думаю, что такую функциональность нужно встраивать в ConEmu. UAC не для того был придуман, чтобы его обходить… Если уж юзер хочет звать хак — пусть делает это осознанно.
Это же какая гора времени и сил, затрачены на такую классную утилиту?! Более тяжелые пакеты типа сигвина за собой везде не потаскаешь, а эта — однозначно на флешку, благо она портабельна из коробки. Да и написана она специально под винду, есть приятные плюшки.

Одним словом,- спасибо огромное!
Вопрос — существует ли single instance mode?
Я пользуюсь тоталом и по хоткею вызываю консоль в активном каталоге, проблема в том что если консоль уже открыта я хочу чтобы создавался новый таб. Для console2 кое как сделал себе запускалку, которая чекает процесс и эмулирует хоткей создания новой вкладки (если он уже есть) и делает cd в каталог, который передается как параметр.
Я поизучал настройки и не нашел подобной опции, может плохо смотрел? По умолчанию у меня всегда открывается новое окно с консолью.
Ключ "/Single" упоминается в статье.
А поделитесь пожалуйста рецептом, где в ТС эта волшебная настройка? А то я всегда через командную строчку cmd.exe вызываю.
Подскажите, как решить проблему с фокусировкой? ConEmu используя для запуска SSH-клиента xshell. При нажатии горячей клавиши выезжает quake-терминал, но фокус остается на ConEmu, а не на xshell.
v. 130105x64, win7x64
Обновитесь, должно помочь.
Благодарю, словно нарыв исчез. Подтверждаю, в х108 во время открытия перефокусирует на врутреннее окно.
Хочу отдельно поблагодарить Вас, Maximus5, за очень ценный труд!
Буквально около месяца назад понял, что нужна нормальная консоль и среди множества вариантов наткнулся на ConEmu.
По-моему, это лучшее что есть под Windows среди терминалов. Спасибо большое.
Спасибо, действительно, тоже считаю, что это лучшее из того, что есть под винду из терминалов!
Есть пару вопросов: как бы проще всего вычистить выпадающий список при открытии новых табов — пока настраивал, такая каша собралась, нужное — несколько сессий Putty, far да по одному каждого шелла — пока найду, упарюсь… можно конечно на дефолт все скинуть, но может можно проще как то почистить?
И второе — то, чего мне всегда не хватает в виндах — история ввода команд не только в текущей сессии, но и вообще, ну как в линукс… задача возможно не для терминала а для шелла, но все же, может, есть тут какой хитрый ход один на все шеллы…
как бы проще всего вычистить выпадающий список при открытии новых табов

Чего уж проще? тык или тык.

не хватает в виндах — история ввода команд не только в текущей сессии, но и вообще, ну как в линукс…

Это таки задача шелла. Я уже говорил, что в будущем возможно встрою в ConEmu свою историю, а пока…
Для cmd.exe есть clink.
Чего уж проще? тык или тык.

прошу прощения, не совсем видимо ясно выразил свою мысль — так конечно проще, но так вычищается все, а хотелось бы выборочно… просто при постоянных экспериментах и добавлениях периодически добавляется и мусор — таки если надо удалить пару строк, а 10-15 оставить… но в общем то конечно не критично…
Для cmd.exe есть clink.

за это спасибо
Выборочно — только ручками, через реестр или xml. Не хочется еще один интерфейс плодить.
Пожелание: при создании таба через диалог «new console dialog» установки «new console split» не срабатывают, если выбрать задачу с установленным позиционированием в коммандлайне.
Просьба сделать настройки диалога более приоритетными, чем установки, сохранённые в {sometask}.
Диалог более приоритетен. Если в последней версии это не так — создайте Issue с конкретным примером.
Ещё пожелание:
Сделать опцию «не закрывать программу когда закрыты все табы». Т.е. чтобы можно было в автозапуск положить эту консоль и пользовать постоянно одно окно, иначе quake-стиль не слишком хорош.

Кстати, у меня наблюдается странность: на панели задач windows закрепил программу. Когда она сворачивается в трей — на панели остаётся кнопка, которая уже не показывает активные окна (в трее). И при нажатии — запускается новое окно с программой (а не новый таб, как при перехвате «Win+R:cmd.exe», например).
Вы какую версию-то пользуете? Есть подозрение, что это уже давно реализовано.
130113 x64
На счет странности — в чем странность? Что просили — то и получили.

С какой радости exe-шник (ярлык что делает? правильно, запускает ConEmu.exe) должен решить, что ему нужно восстановить программу из трея, вместо запуска новой копии.
Hint: но exe-шник об этом можно попросить специальным ключиком.
С той радости, что закрепление на панели задач не является простым ярлыком и ни одна программа после сворачивания в трей не запускает свою копию. Т.е. это нестандартное поведение ПО под windows 7/8.

1. Закрепление на панели задач является простым ярлыком. Покажите пруф в MSDN что это не так, или изобразите способ узнать как именно запущена программа.
2. О чем может быть разговор, если ни одна из ваших программ «не умеет» запускаться в нескольких копиях?
1. Ок, я ошибся (проверил только что).
2. Можем поговорить о поэзии, лишь бы не переходить в такой тон дискуссии.

Есть ли в настройках запрет одновременного запуска нескольких копий основного окна без ключей в ярлыке?
В настройках нет, пока никто не просил. Только "/single".
Хотя не, для quake-style как раз single сам включается.
Тогда я ещё попрошу вынести отдельно как опцию. И, кстати, когда программа в трее, хотелось бы иметь хоткей для возвращения её обратно. Он, скорее всего, уже имеется, но у меня не получилось его найти.
Хоткей — «Minimize/Restore»
Спасибо! Поставил на минимизацию «Win+`» — теперь Quake-style действительно крут.
Пользуюсь Console, потому что в ней есть много вкладочность, к которой привык в Konsole под линухами.

Вопрос. Настраивается ли у вас внешний вид курсора и скорость его мигания? Я очень трепетно отношусь к комфорту работы с консолью, а курсор — это вообще предмет отдельного исследования:

Меняем форму курсора в Konsole

Вам нужна только многовкладочность? И все? Так никто не заставляет переходить на что-то другое…

Курсор — блок/горизонтальный/вертикальный, высота настраивается, режим цвета или инверсии, частота мигания (отключаемого) настраивается в OS.
Как по мне — так это баловство (прыгающие, взрывающиеся, падающие, распахивающиеся и прочие).
Возможно ли настроить «ConEmu here» в Explorer'е, чтобы создаваемая консоль открывалась не в новом окне, а в новой вкладке? Обычный запуск консольных программ обрабатывается нормально — вкладка создается.

Перерыл все настройки, FAQ и google, ничего подобного не нашел. Самое близкое это ключ /single, но его видимо нельзя прикрутить в пункте integration.
Можно его прикрутить, введите в поле «Command»

/single /cmd cmd.exe
Спасибо! Завтра попробую на работе. Кстати столкнулся с такой проблемой — после открытия консоли режим ввода в терминал по умолчанию становится overwrite, постоянно приходится нажимать insert после выполнения команд, для того чтобы перейти в режим вставки текста. Для меня это критично, потому что приходится писать длинные команды и исправлять уже исполненные, иногда нажимать insert просто забываю и затираю часть командной строки. Есть ли какое-нибудь решение? Опять просмотр настроек, гугл и faq не помогли…
Версия ConEmu, какой shell? ConEmu overwrite сам не ставит. (Разве что в последней 140122alpha в результате изменений некоторых, что будет пофиксено в следующей).
Но я подозреваю, что вы на tcc жалуетесь, так и настройку в нем ищите, а не в ConEmu.
Last chance — кто-то мог поменять настройку «ConInMode» в реестре или xml (в интерфейсе настройки нет).
Ok, понятно. У меня сейчас как раз последний билд :) Пока откачусь на более раннюю версию. Спасибо за информацию.
К сожалению, откат на старую версию не помог. В общем отправил тикет с описанием проблемы, может быть моя информация окажется полезной.

P.S. С нетерпением жду нового релиза с исправлениями :)
P.P.S. Да все-таки проблема решается как вы написали выше с помощью ключа реестра HKEY_CURRENT_USER\Software\ConEmu\.Vanilla\ConInMode — поменял с 600000 на 0. Все заработало. Но все равно хотелось бы, чтобы это было по-умолчанию после свежей установки программы.
Хотел сделать (даже делать регулярный) донейт через PayPal, а он мне отказал по причине того, что из РФ в РФ можно передавать только рубли. Может быть сделаете прием и в рублях? Или там Яндекс.Деньги прикрутите?
Попробуйте Яндекс
Да, работает, спасибо.
Прошу прощения, Вы не могли бы ответить на вопрос по поводу запуска консольного приложения из папки c:\windows\system32 тут.
Спасибо.
Спасибо автору за мое счастливое conemu+far
ОК! Отлично! Пользуюсь. Спасибо автору.
Спасибо автору, присоединил к тоталкоммандеру, не нарадуюсь, на работе привык к встроенному терминалу muCommander, но на работе *nix, а дома виндовс и жаву ставить неохота, а консолька с копипастом и регуляцией размера окна нужна.
Есть одна непонятка. Установка по умолчанию (с Far) (windows 10, ConEmu 161206 [64] {Stable}. Far 3.0.5000 x64).
При попытке запустить на выполнение exe (приложения коммандной строки (без gui)) из папки c:\windows\system32\test.exe получаю сообщение о ошибке вида:
C:\Windows\System32>C:\Windows\System32\test.exe
Der Befehl "«C:\Windows\System32\test.exe»" ist entweder falsch geschrieben oder
konnte nicht gefunden werden. В переводе — комманда написана неправильно или не может быть найдена. (кавычки оставил как в сообщении). Из любой другой папки без проблем. Если приложение имеет gui то запускается без проблем. Те же манипуляции просто из Фара проблем не вызавают. Подумал может с правами что то, запустил ConEmu с правами админа, та же ошибка.
Или если в тойже вкладке запускаю cmd то тоже все работает. Или если запускаю в новой вкладке cmd без far всё запускается и из c:\windows\system32. Я не учитываю какие то особенности shell у Far под ConEmu?

Спасибо.
А что это за test.exe?
Может ваш test.exe вызывает другую программу или библиотеку, которая должна быть где-то у вас в PATH, но случайно в c:\windows\system32 у вас лежит другая, с таким же названием, но вызывающая ошибку?
да, но из cmd вызывается нормально. Да и сообщение об ошибке вполне конкретное, что сам test.exe не найден. c:\windows\system32 в path присутствует. Да и в сообщении об ошибке стоит полный путь к файлу. Допускаю что test.exe возвращяет не стандартный код для консольного приложения но сообщение об ошибке должен тогда тоже писать он.

если уж быть точным test.exe это copymik.exe
для пробы скомпилил стартное 32х разрядное консольное приложение.
назвал test.exe. Приложение просто выводит строку и ждёт любого нажатия.
Проблемма таже самая. соотв делаю вывод что проблема не в приложении. Учитывая что ошибка происходит только если программа лежит в c:\windows\system32 а из другой папки запускается без проблем наводит на мысль о правах, но почему тогда из под cmd все работает без проблем? Жалко Автор сюда не заглядывает.
отчасти разобрался, аналогичная ошибка возникает если запускать 32 разрядное приложение из 64х разрядного cmd. EmuCon и Far установлены 64х разрядные и походу из под ConEmu far не может разобраться какой разрядности консольное приложение запускается и по умолчанию использует 64х разрядный шелл что ведёт к ошибке. Теперь встаёт вопрос возможно ли эту проблемму решить настройками ConEmu и/или far. Без ConEmu этой проблемы в Far не возникает.
да, забыл добавить что проблема проявляется если только приложение находится в windows/system32
Расобрался, сие лечится в настройках ConEmu в разделе «Startup->Tasks» пометкой нужного Shell (в моём случае {Shells::cmd (Admin)} как — «Default task for new console»
Это к вопросу о запуске из ком-строки фара никак не относится…
из папки c:\windows\system32\test.exe

Хм? Может все-таки из папки «c:\windows\system32»?
Вам читать в сторону system32, syswow64 и sysnative. Думаю, вы запутались с битностями приложений.

Есть еще настроечка: conemu.github.io/en/SettingsComspec.html#choose-preferred-command-processor-platform-bits
Спасибо большое за терминал! Тут что-то решил перейти на win10 и заметил, что в ConEmu Far и PowerShell грузятся куда дольше, чем просто при открытии, в win7 всё было отлично. А Putty вообще в отдельном окне открывается. Это можно как-то пофиксить?
Также интересует вопрос по режиму quake, возможно отключить анимацию выпадения?

В Win10 работа идет по той же схеме, что и в Win7. Так что корень тормозов ищите в версиях фара и конфигах.
Про путти ничего не понял. Работает из коробки.
Quake — поставьте время анимации в 0, и будет счастье.

Спасибо!
Может, конечно, дело в том, что на 7 ставил из .exe, а на 10 из Chocolatey, попробую иначе. По путти — открывается в отдельном окне вне ConEmu, не как вкладка.

Понял, дело было в том, что putty портабельный.
Решил попробовать ещё раз и снова перешёл на win10, проблема та же, при этом отдельно Far и PowerShell грузятся махом, а в ConEmu это занимает от 3 до 5 секунд.
Может при старте ConEmu новую версию в инете проверяет?
Полазьте по разным настройкам, поковыряйте разные опции интеграции.

Настройки пробовал и дефолтные, и с версии win7. Проблема не в запуске ConEmu (он тоже долгий, конечно), а в запуске задач, то есть при открытии новых окон в уже открытом ConEmu.

Поставил портабельную версию от PortableApps, и всё заработало нормально, нормальная установка в систему по-прежнему не работает, портабельная оригинальная также.
Ещё заметил, что при изменении размера окна Far начинает плыть.
Screenshot
image
Абсолютно все релизы ConEmu (PortableApps, Installer, 7zip) содержат идентичные бинари. Разница может быть только в ваших настройках ConEmu.xml.
Первый шаг траблшутинга — запустить «ConEmu.exe -basic -run cmd.exe».

Far плывет и будет плыть. Это Win10 консолька делает «reflow» содержимого текста по всей консоли, ConEmu это запретить не может — нет API такого.
Лечится — CtrlO, CtrlO.
Как оказалось, в самих задачах по дефолту что-то было ещё прописано, что тормозило запуск.
К сожалению, Ctrl+O не всегда спасает. Постараюсь реже менять размер окна.
Спасибо!
Столкнулся с одной проблемой. Windows программа запушенная из ConEmu + Far перестаёт принимать файлы по drag&drop из других приложений. Drag&Drop событие в программе просто перестаёт происходить. Походу или ConEmu или Far перехватывает это событие :(
Непонятно как это побороть…
Давайте угадаю. Far запущен под админом (elevated console)?
да, под Админом. Это как то влияет на Drag&Drop?

D&D перестает работать, вы это уже ощутили.
Абсолютно такой же эффект будет если вы запустите ваше приложение под Админом без ConEmu.


Windows запрещает коммуникацию между приложениями, если они запущены с разными привилегиями.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории