Чому запуск gvim в ConEmu працює з завданням, а не з командного рядка?


1

Коли я ввожу це в ConEmu:

gvim --windowid %ConEmuBackHWND% -new_console:sH

Я отримую порожній розкол, який через деякий час говорить наступне:

GUI application (PID=384) was attached to ConEmu:
\Path\To\gvim.exe

При спробі з'ясувати, що відбувається не так, я зробив завдання "Gvim" з наступним вмістом команди:

gvim --windowid %ConEmuBackHWND% -new_console:sH

(Те ж, що й команда, введена вище в командному рядку)
І коли я знаю, почати завдання з діалогового вікна "Створити нову консоль", все працює відмінно, і я отримую вікно gvim дитини, як моє право розкол!

Як виконуються команди з діалогового вікна "Створити нову консоль", і як я можу зробити вищезгадану команду, щоб породити gvim розділити безпосередньо з консолі?

Відповіді:


1

ProcessExplorer є дуже корисним інструментом для виявлення проблем зі змінними навколишнього середовища і речі ... Я думаю, у вас є проблеми, тому що змінна розширення. Спробуйте виконати наступні дії

gvim --windowid !ConEmuBackHWND! -new_console:sH

Коли ви запускаєте команду зі знаками відсотка, CLI замінює змінні раніше ConEmu отримати команду. Таким чином, ви намагалися запустити gvim у новому розбитті, але розповідаючи йому HWND старий розкол .

Коли ви використовуєте знаки оклику, змінні не розширюються, ConEmu отримує команду недоторканою і !ConEmuBackHWND! розширюється за допомогою самого ConEmu в належний момент, після створення спліт і ініціалізації нових змінних.


Це спрацювало! Я не знав, що EnableDelayedExpansion включено за замовчуванням. Чи не могли б ви пояснити, чому ви вважаєте, що проблема сталася?
Fr0stBit

Оновлення відповідей, знаки оклику розширюються самим ConEmu.
Maximus

Фантастичний! Дякуємо за пояснення. Мені досі цікаво, чому нормальне розширення змінної оточення працювало з виконанням завдання. Я вважаю, що це така ж логіка, як і вище, дочірнє вікно створюється з деякими функціями WinAPI, а потім команда розгортається безпосередньо в новому вікні, чи не так?
Fr0stBit
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.