Open Karlson2k opened 8 years ago
ConEmu.exe -log
и воспроизвести проблему делая попутно скриншоты. Логи и скриншоты заархивировать и ссылку в студию.
Новые логи с новой версии, если повторяется.
https://onedrive.live.com/redir?resid=391A0B9ECC961A3F!1154&authkey=!AED-GNYpiAY1W78&ithint=file%2czip Всё то же самое, но, как я понимаю, кроме логов пока меняться нечему.
Пояснение - возможно поможет разобраться: запускается .cmd-файл, который запускает git команды. А git внутри запускает Msys2 sh.exe и компанию.
При запуске выскакивает окно на долю секунды, сразу же закрывается и остаётся висеть пустое окно ConEmu, при этом .cmd файл продолжает работать где-то в фоне (видно только по менеджеру процессов). После того, как .cmd отработал - окно ConEmu продолжает висеть по-прежнему. Закрывается только по крестику (или через меню).
Дело не в GIT-командах. Добавил pause
в первую строчку .cmd-файла - результат совершенно идентичен предыдущему за исключением того, что cmd.exe прихдиться прибивать вручную.
Добавил скрины менеджера задач.
Первый - после запуска .cmd-файла. Второй - после принудительного завершения cmd.exe.
В хвост логов затесалась не относящяяся к делу информация - актуальна только первая минута.
Кстати, ещё более простой способ: Windows Run: conemu64 -log2 /cmd cmd.exe
В открывшемся окне:
start cmd.exe -new_console:z
Результат полностью аналогичен предыдущему, хотя ConEmu не должно вроде как перехватывать.
Логи:
https://onedrive.live.com/redir?resid=391A0B9ECC961A3F!1166&authkey=!AE6c24ZgozHwIok&ithint=file%2czip
Кстати, во всех неудавшихся запусках в ConEmu-srv-*.log в строчке CurSize=
в конце - мусор (вместо наименования шрифта?). Совпадение?
перехват start из консоли ConEmu не имеет ничего общего с DefTerm. Поэтому и -new_console:z не влияет.
-new_console:z
влияет только на Default Terminal?
Тогда почему если из cmd.exe в ConEmu запускать копию cmd командой start cmd.exe
(без параметра), то вторая копия cmd.exe прекрасным образом запускается и прикрепляется второй вкладкой в том же окне ConEmu? А с параметром - как описано выше.
Таки да, -new_console:z
отключает перехват start
. Но проблемы я не наблюдаю. Даже на семерке.
Из вашего описания я вообще не понимаю, что у вас происходит. Начальные скриншоты с «пустым» окном вообще к чему относятся?
Во всех перечисленных случаях - после запуска чего-либо появляется пустое окно ConEmu, вместо окна с каким-то реальным выводом. А реальная работа идёт где-то в фоновом процессе без визуализации. Кстати, на скриншотах видно, что висит ConEmu64 без ConEmuC. Не знаю, что ещё запостить. Может что-то ещё в логи добавить? Или собрать из исходников и пройтись дебагером?
Почему окно пустое? Судя по вашему описанию, у вас уже есть одно окно, как минимум с одной вкладкой, в которой вы пускаете start cmd
. То есть ожидается либо вторая вкладка, либо окно стандартного терминала. Нет?
Run: conemu64 /cmd cmd.exe
- открывается окно ConEmu с одной вкладкой "cmd"
Из этого терминала запускаю start cmd.exe -new_console:z
- открывается на долю секунды окно, сразу исчезает, открывается новое окно ConEmu с единственной пустой вкладкой "ConEmu". Окно висит, пока его не закроешь вручную. Дополнительный процесс cmd.exe продолжает висеть в фоне.
Поскриншотил процесс запуска - отловил заголовок окна, которое мелькает: [путькцмд]\cmd.exe - "[путькConEmu]\Cmd_Autorun.cmd" "/GHWND=NEW"
Зачем мешать слонов с тараканами?
@Maximus5 Какой вывод предполагается из этой ссылки? Это как-то объясняет пустое окно ConEmu?
Сделал Unregister
и Clear
для autorun (кстати, не очень понятна между ними разница).
Теперь при запуске в ConEmu новой оболочки командой start cmd.exe -new_console:z
происходит аттач в то же окно второй вкладкой.
Зато при запуске из Far .cmd файла командой Shift-Enter открывается окно стандартного терминала, только оно называется ConEmuC64.exe.
Force as default terminal
- установлено.
Верится как-то с трудом... Давайте новые логи со скриншотами по шагам. А заодно свои настройки (xml).
кстати, не очень понятна между ними разница
если там только ConEmu - никакой.
кстати, не очень понятна между ними разница
если там только ConEmu - никакой.
Может тогда стоит дизейблить Clear
? Заодно дизейблить одну из двух: Register
или Unregister
. Тогда юзверю будет куда очевидней, что делать.
Кстати, заодно делать Unrigester
при сбросе настроек.
Логи и мои настройки чуть позже выложу. Кстати, настройки недавно сбрасывал при попытке избавиться из странного поведения.
Смысл что-то дизеблить отсутствует. Пример: обновить регистрацию после установки ConEmu в новую папку. С помощью Clear вычистить возможную заразу, которую зарегистрировали другие приложения (возможно злонамеренно).
Логи и мои настройки чуть позже выложу
Пошаговые скриншоты. Хотя еще лучше видео сделать.
Fully optional, but
Если в Autorun ничего нет - можно дизейблить Unregister
и Clear
(можно нажать Register
).
Если присутствует строчка, соответствующая запущенному ConEmu - дизейблить Register
и Clear
(можно нажать Unregister
).
Если присутствует строчка не соответствующая запущенному ConEmu - дизейблить Unregister
(можно нажать Register
или Clear
).
Логика такая.
Что сейчас произойдёт, если нажать Unregister
, если в Autorun записано что-то левое? Произойдёт очистка или ничего? Неочевидно.
А как понять, что там записано что-то не левое? Только запустить regedit и посмотреть?
В общем, сейчас приходится для верности нажимать обе Unregister
и Clear
, так как иначе - результат совсем не очевиден.
https://onedrive.live.com/redir?resid=391A0B9ECC961A3F!1178&authkey=!AD8LSu3JTOv136g&ithint=file%2c7z Решил обойтись без видео, так как всё очень просто. Расписываю по шагам:
Shuft-Enter
Вылезает окно стандартного терминала с названием ConEmuC64 с очень мелким шрифтом, в котором исполняется .cmd файл.Так на что вы жалуетесь?
Хотелось бы запуска ConEmu, а не ConEmuC, в котором ничего не видно.
Сто лет как работает и ничего не менялось:
/ConEmu/Far3_lua/ConEmu.ShiftEnter.lua
Значит я пользуюсь ConEmu лет 200. И раньше как-то работало без этого.
Вообще-то хотелось бы запуска в отдельном ConEmu окне, а не в новой вкладке в текущем. Раньше всё прекрасно работало (видимо, с Default Terminal или что-то ещё помогало).
Видимо при сбросе настроек - отвалилась настройка Multiple consoles in one ConEmu
. Теперь всё прекрасно в отдельном окне.
А настройка Automatic attach...
несовместима как-то с Default Terminal?
Кстати, строчка для AutoRun в настройках у меня была всегда пустой, я даже не думал, что там бывает какая-то надпись.
Сейчас, когда заново прописывал - надпись появилась. Перезапуск ConEmu - надписи нет. Нажатие кнопок Unregister
и Clear
не дают никакого результата. Хотя в реестре AutoRun остаётся.
Запуск от Админа - тоже ничего не даёт. Настройки не могут очистить Autorun.
Как только autorun прописал - глюк вернулся.
Запускаю .cmd-файл (хоть через Win-R, хоть через shortcut на декстопе) командой "X:\bla-bla\eclipse-m\eclipse-mgw64.cmd" -new_console:z
- открывается новое окно ConEmu, но пустое. А новый процесс cmd.exe висит где-то в фоне.
В Autorun прописано "Y:\lya-lya\Far Manager\ConEmu\Cmd_Autorun.cmd" "/GHWND=NEW"
Automatic attach - фича для обделенных. Не рекомендуется.
Ну не влияет -new_console:z
на Autorun. Вообще. В принципе это влияние не возможно.
Default Terminal
- тоже установлено. Или это взаимоисключающе?
В доках не видно ничего об этом.
@Maximus5 Переименовать в "Баг с аттачем к ConEmu при использовании Autorun"?
Можно. А также проверить новую версию. Хотя Autorun все-равно не рекомендуется - очень много там допущений.
Почти всё пофиксилось.
Осталось ерунда: если включено "Automatic attach..." и Default Terminal (не проверял при выключенном), и запустить cmd командой cmd -new_console:z
, то запускается cmd внутри ConEmu (как и ожидалось c autoattach), но после команды exit
окно ConEmu остаётся висеть с пустой вкладкой.
@Maximus5 Установлено "Close ConEmu with last tab" и "Quit on close".
Поведение отличается в зависимости от параметра -new_console:z
. Если запустить cmd без этого параметра, то, видимо, срабатывает Default Terminal и после команды exit
закрывается вкладка и само окно.
Если запустить cmd -new_console:z
, то срабатывает autoattach, судя по строчкам
ConEmuC build 160403a x64. (c) 2009-2016, ConEmu.Maximus5@gmail.com
Starting attach autorun (NewWnd=YES)
и в этом случае не закрывается вкладка и соответственно окно после exit
.
Отличие только в способе запуска, параметры не меняются.
Всё даже ещё забавней.
Если запустить с автоаттачем командой cmd -new_console:z
, то в настройках галка Close ConEmu with last tab
всегда снята. Если её установить, нажать Save
и опять зайти в настройки, то галка опять будет снята.
При этом, если запусть просто командой cmd
(Default Terminal - включен), то чекбокс будет отмечен.
Зависит только от способа запуска.
Last 2 or 3 versions have problems with attaching to started applications when staring .cmd files: ConEmu window opens, but empty, started cmd executed in background. Menu->Real console show nothing. Observed when staring .cmd from Far manager in separate window (by Shift-Enter) or if starting .cmd from shortcut on desktop.
PS. Могу уточнить по-русски. :smile: