Terminal: Откройте новую вкладку терминала в том же каталоге, что и существующая вкладка (OSC 7?)

Созданный на 11 окт. 2019  ·  39Комментарии  ·  Источник: microsoft/terminal

Описание новой функции / улучшения

Есть возможность (или по умолчанию) открытия новой вкладки терминала в текущем каталоге окна, в котором вы нажимаете горячую клавишу, чтобы открыть новую вкладку. Это стандартный способ работы большинства терминалов Linux, и он очень удобен. Я часто работаю в каталоге, где мне нужно запускать несколько отдельных процессов, каждый раз возвращать CD обратно в каталог очень сложно.

Предлагаемые детали технической реализации (необязательно)

Нажмите горячую клавишу новой вкладки, новый терминал должен быть в той же папке, что и предыдущий.

Area-Settings Area-VT In-PR Issue-Feature Product-Conpty Product-Powershell Product-Terminal

Самый полезный комментарий

Это важная отсутствующая функция.

Все 39 Комментарий

Существует «стандартная» escape-последовательность (OSC 7; URI ST), чтобы установить мнение эмулятора терминала о текущем каталоге. Он происходит из macOS Terminal.app, а позже был принят некоторыми другими, включая GNOME Terminal и, насколько мне известно, Konsole.

Другой возможный подход - это сделать некоторые специфические для ОС хаки, чтобы изучить внутреннее состояние дочернего процесса (или даже дальше до потомков).

Еще одна возможность состоит в том, чтобы смешать два, например, перейти в каталог, установленный через OSC 7, если он когда-либо был отправлен, в противном случае копаться в процессе.

Преимущество подхода OSC 7 заключается в том, что он продуман в отношении того, когда следует, а когда не следовать дочернему процессу. Например, вы запускаете другую вложенную подоболочку, это будет подкаталог этой подоболочки, который будет учитываться, потому что он также испускает эту последовательность. Однако запустите приложение, которое внутренне изменяет каталог (например, make), и оно, к счастью, не будет использоваться внутренним подкаталогом make.

Недостаток OSC 7 в том, что он требует сотрудничества со стороны оболочки или других важных приложений.

Я отклонял этот запрос функции, пока этот проект был открытым, и я так и не узнал о OSC 7. Это _ очень захватывающе_.

Мне не нравится ползать по дереву процессов, чтобы раскопать CWD самого листового процесса, но я очень рад поддерживать OSC 7.

К вашему сведению, я спросил об обработке OSC 7 для Alacritty, что в конечном итоге привело к тому, что эта проблема была создана в «Рабочей группе терминала» на gitlab: https://gitlab.freedesktop.org/terminal-wg/specifications/issues/20

По этому билету не было большого движения, но, возможно, вам будет интересно по нему проследить. Особенно, если у вас есть какие-либо мнения относительно того, как может выглядеть «формальная» спецификация OSC 7.

Итак, для записи, в ветке https://github.com/jwilm/alacritty/pull/2937 есть довольно интересное обсуждение.

Честно говоря, я вполне нормально использую уже действующий де-факто стандарт OSC 7 ; <URI> ST механизм


Подождите, у меня была ужасная мысль. Скажем, bash настроен на его выдачу, и кто-то запускает bash в WSL. Что мы должны делать, когда кто-то пытается установить рабочий каталог на /home/zadjii ? Как мы:

  1. скажите, что это путь WSL, а не путь Windows
  2. знаете, из какого дистрибутива WSL это пришло?

Нужно ли нам добавить какое-то свойство на нашей стороне, которое указывает, что «это дистрибутив WSL, а не Windows exe»? Что происходит с пользователями, которые этого не устанавливают, не работает ли функция дублирования вкладок (фактически тихо)?

Затем следующая часть усложняется. Что происходит, когда эта команда выводится по SSH? Терминал не может знать, что путь больше не на этой машине, верно? Как Terminal.app с этим справляется?

Возможно, это требует дополнительных уточнений 😨

(Off: Сколько времени пройдет, пока я не свяжу вас двоих, Ди Хоуетта и Ди Хьюитта? :))

Это важная отсутствующая функция.

Это должна быть опция конфигурации для разных команд. Например, я бы хотел это для duplicateTab и splitPane , но не для newTab .

escape-последовательность задокументирована в настройках mac os terminal.app, как показано в этом комментарии alacritty / alacritty # 2937 (комментарий)

В macOS escape-последовательности фактически указаны в Terminal.app> Preferences ...> Profiles> Tab.69387948-67d69d00-0c95-11ea-881d-375672873fb4

Для записи, в https://gitlab.freedesktop.org/terminal-wg/specifications/merge_requests/7 ведутся жаркие споры о спецификации именно этой функции. Я сомневаюсь, что мы будем поддерживать какое-либо подмножество этой функции до тех пор, пока там не будет фактически принятого предложения - мы бы предпочли не вводить другую несопоставимую реализацию, пока не будет действующего стандарта.

Я бы посоветовал вам поступить наоборот :)

Многие терминалы успешно реализовали OSC 7, копируя друг друга, в результате чего пользователи были довольны.

И в настоящее время есть кто-то, кто думает, что это недостаточно хорошо, он считает, что нужна формальная спецификация; придумывает черновик, полный проблем, и то, что я вообще не могу понять, желает задокументировать только одного из двух братьев и сестер. (Примечание: я перестал следить за этой цепочкой пару дней назад.)

Terminal-WG не является официальным органом, ее документы не являются «официальными», не являются «стандартами» каким-либо образом де-юре. У него даже нет надлежащих процедур, людей с обязанностями, права голоса, чего угодно; никто не знает, что нужно для того, чтобы документ был там «принят», что бы этот статус вообще ни означал. Это просто собрание случайных неорганизованных людей, пытающихся придумать что-нибудь полезное. Не позволяйте этим неофициальным дебатам помешать вам реализовать давно зарекомендовавшую себя функцию.

Для протокола, в https://gitlab.freedesktop.org/terminal-wg/specifications/merge_requests/7 ведутся жаркие споры.

Я прокомментировал это и по проблеме, упомянутой в этой PR 😉

Для тех, кто использует Bash (из Git для Windows), временный обходной путь, который меня спасает, заключается в том, чтобы сохранять новый путь каждый раз, когда вы меняете dir (псевдоним команды cd ), а затем cd там, когда новая оболочка запускается; это в моем _.bashrc: _

if [ "${PWD,,}" = "/c/windows/system32" ]; then
    if [ -f /tmp/pwd ]; then
        cd "$(< /tmp/pwd)"
    else
        cd ~
    fi
fi

cd() {
    command cd "$@"
    pwd > /tmp/pwd
}

Я на самом деле тестирую, запускаю ли я в System32 (начальное местоположение моего терминала по умолчанию), так что я все еще могу ввести wt в адресной строке проводника и начать где-то еще, но этот бит является необязательным и должен быть настроен, если ваша оболочка запускается в другой папке.

Я недостаточно хорошо владею PowerShell или другими оболочками, но я думаю, что вы можете делать что-то подобное.

Ctrl + T должен открывать новую вкладку с той же оболочкой и тем же каталогом.

Не все согласны с этим утверждением.

Не все согласны с этим утверждением.

Может быть, многие согласны. Именно так терминальное приложение работает на большинстве настольных компьютеров Linux.

По крайней мере, это можно сделать как вариант.

Привет, я считаю, что в этой теме уже ясно, что многие согласны с тем, что это полезная функция, и команда Windows Terminal также знает об этом. И также очевидно , что проблема здесь не они не хотят , чтобы сделать это конфигурируемый, но они должны сначала выяснить некоторые технические вещи , которая препятствует функция от того , возможно.

Я слежу за этой веткой, чтобы быть в курсе этой функции и связанных с ней обсуждений, но подобные сообщения только загромождают интерфейс и не помогают. Я хочу попросить людей воздерживаться от публикации сообщений, которые не имеют ничего общего, кроме повторения уже известных моментов.

По крайней мере, это можно сделать как вариант

Вот чего я не понимаю в упорстве. Если вы хотите пойти против того, как ведет себя большинство терминалов, круто. Даже не давая возможности? Где в этом логика? Даже Ctrl + Shit + D, который представляет собой дублирование вкладки, на самом деле не дублирует ее, поскольку удерживает вас в каталоге по умолчанию. Как будто у вас есть дублирующая функция, которая даже не дублируется.

Какие «технические штучки» препятствуют реализации этой функции? Код уже существует. В Ctrl + Shift + D уже есть дублирующаяся вкладка. Ему просто нужно загрузить текущий рабочий каталог, и у вас будет поведение, к которому привыкло большинство людей и которое люди запрашивают. Так что я смущен тем, как это блокируется "техническими штучками".

Я ценю такой тип обсуждения, потому что совершенно ясно, что здесь присутствует упрямство, что означает, что такой тип обсуждения необходим.

А вы правы, исходное обсуждение потеряно, потому что оно никогда не было связано с этой веткой. Я копирую содержимое другого сообщения (https://github.com/microsoft/terminal/issues/2427#issuecomment-521307534) сюда для справки:


https://github.com/microsoft/terminal/issues/1756#issuecomment -520048598

Просто вмешиваюсь;

_ (профиль, рабочий каталог, переменная среды и т. д.) ._

Что-либо, связанное с "реальным процессом" на другом конце, в общем случае невозможно воспроизвести. Подключенным процессом может быть ssh.exe , чьи переменные среды и рабочий каталог не имеют отношения к обнаруживаемой среде и рабочему каталогу со стороны терминала. То же самое, как ни странно, применимо и к WSL. Он не использует «рабочий каталог» и никоим образом не раскрывает свои переменные среды заинтересованным процессам Windows.

Powershell даже не _set_ текущий рабочий каталог, поэтому его каталог также не может быть обнаружен (!).

https://github.com/microsoft/terminal/issues/2315#issuecomment -519317472

Это одна из тех вещей, которые в общем случае невозможны, но технически возможны. Здесь много тонкостей, вроде:

powershell
cd d:\users

Что ж, PowerShell - не первый процесс, который мы запустили. мы проигнорируем путь d:\users

(in powershell)
cd d:\users

мы бы проигнорировали d:\users потому что powershell _ на самом деле не устанавливает текущий рабочий каталог_ (!!)

Если ваша «оболочка» - ssh [email protected] (где мы строго определяем оболочку как «первый процесс, запускаемый Терминалом от вашего имени»), его рабочий каталог всегда будет C:\windows\system32 независимо от того, что удаленный рабочий каталог.

Я бы предпочел не предоставлять эту функцию, чем предоставлять ее с таким количеством оговорок, что они заполнили бы страницу документации. ☹️ извините.

https://github.com/microsoft/terminal/issues/1536#issuecomment -519107586

Нет, потому что это было бы невозможно сделать в общем смысле. Как, например, продублировать экземпляр vim? Что, если процесс переднего плана открыл какой-то файл для монопольного доступа - как мы могли бы продублировать этот процесс?

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


Даже если Powershell _did_ установил рабочий каталог, мы все еще не уверены, что _технически_ возможно в Windows получить CWD другого процесса. Так что это "технические" штуки, которые мешают этому работать. Я бы хотел добавить это как настройку. Но, безусловно, есть технические вопросы, на которые нужно ответить.

Решение, которое обсуждается в этом потоке, включает добавление поддержки для другой последовательности VT в Терминал, которую _shell_ сможет излучать, чтобы указать Терминалу, по какому пути он находится. Эта последовательность VT не очень хорошо определена и имеет крайние случаи, которые еще требуют решения. А именно:

  • Что происходит, когда оболочка WSL сообщает: «Мой CWD - это /home/foo ? Терминал не может узнать, что путь является путем WSL, или даже к какому дистрибутиву он принадлежит, поэтому дублирование этой вкладки, скорее всего, закончится C:\home\foo (если есть)
  • Что происходит, когда вы подключаетесь к другому компьютеру через SSH? Терминал не сможет отличить эти пути от путей на вашем собственном локальном компьютере, поэтому повторное копирование этого пути будет неправильным поведением.
  • Каждому пользователю нужно будет настроить свои приглашения для различных оболочек _ вручную_, чтобы взаимодействовать с этим поведением. Это не блокировщик, но это означает, что это будет настройка, которая не будет работать из коробки.

Вы пытаетесь дублировать запущенные процессы? Взглянем, например, на Linux. Если вы используете SSH в своем терминале и открываете новую вкладку, новая вкладка не открывает SSH-соединение и не позволяет перейти туда, где вы находитесь в SSH-соединении. Он открывает новую вкладку, на которой вы находитесь на своем компьютере. Даже если процесс был локальным, а не SSH, он не запускает процесс. Дублируется только вкладка, а не запущенные процессы.

Похоже, это слишком сложно. Вы не дублируете VIM, SSH или любое другое работающее приложение. Вы дублируете терминал, и это отвечает на крайние случаи:

  • Для WSL вы не просматриваете свой локальный. Если возвращается / home / foo, это местоположение. Если бы это было C: \ home \ foo, оно вернет / mnt / c / home / foo.
  • SSH - это процесс. Он работает в оболочке. Вы не дублируете процессы. Другие терминалы этого не делают. Вы дублируете вкладку.
  • Я не уверен, что пользователь должен будет настроить, но с каких это пор настройка становится проблемой?

Нет ничего плохого в дублировании процессов. Я уверен, что некоторым это понравится. Просто это была бы еще одна опция поверх опции дублирования вкладок. Это не должно быть преградой. Это дополнительно и необязательно.

@PandaClone, вы можете удивиться, узнав, что _некоторые люди устанавливают ssh.exe первым, что запускает профиль, не запуская его из оболочки_.

Как бы то ни было, у Терминала действительно нет способа опросить wsl.exe , приложение-оболочку, которое взаимодействует с процессами Linux, чтобы заставить его сказать, какой текущий рабочий каталог является первым процессом в своем процессе. дерево.
Поскольку он не использует инфраструктуру рабочего каталога Windows, которая хранит WD в блоке среды процесса, простого использования утомительных старых API Windows _ недостаточно, чтобы определить его рабочий каталог.

Это технические проблемы, которые мы должны решить. В противном случае мы напишем функцию, которая работает только примерно для 25% людей.

Если это окажется легким: мы всегда готовы принять участие сообщества.

  • Для WSL вы не просматриваете свой локальный. Если возвращается / home / foo, это местоположение. Если бы это было C: \ home \ foo, оно вернет / mnt / c / home / foo.

Но посмотрите, как эта функция работает, как указано в спецификации, Терминал не знает, кто или что сказал: «Текущий рабочий каталог - /home/foo ». Это может быть cmd.exe - тогда да, пользователь хочет C:\home\foo . Это может быть их дистрибутив Ubuntu или их дистрибутив Fedora, или это может быть ssh, подключенный к centos, или любая другая возможность. Все, что получает терминал, - это строка с надписью «сейчас это рабочий каталог».

  • Я не уверен, что пользователь должен будет настроить, но с каких это пор настройка становится проблемой?

Практически каждую оболочку, которую запускает пользователь, нужно будет вручную настроить, чтобы разрешить отправку этой последовательности. Пользователям cmd потребуется вручную настроить% PROMPT%, включив в него последовательность $e]7;$P$e . bash должны будут установить его в своих PS1 . У PowerShell наверняка будет другой способ сделать это. Однако основная проблема здесь в том, что оболочки _ не_ испускают эту последовательность по умолчанию.

SSH - это не оболочка. Вы можете настроить свой профиль так, чтобы он запускался первым, но он по-прежнему запускается из оболочки. Просто ваш профиль получил указание немедленно запустить приложение. Это приложение может быть любым. Это не обязательно для SSH. Вы можете указать своему профилю запустить другую оболочку, если хотите.

И даже если терминала нет, в чем проблема? Всегда есть исключения. По умолчанию можно использовать домашний каталог, когда нет каталога, в который можно было бы перейти. Это не проблема, когда вы просто «о, это невозможно».

Кроме того, это стандартная функция для большинства терминалов с вкладками. Запустите любой дистрибутив Linux, который имеет свои собственные разновидности терминала, и все они демонстрируют такое поведение при открытии новой вкладки. Это не та функция, которая будет новаторской магией для Терминала Windows. Это стандартная функция.

Терминал не просто создает оболочки. Он буквально вызывает CreateProcess для того, что вы указываете в конфигурации профиля. SSH не запускается и не порождается оболочкой.

Послушайте, мы спорим о том, насколько возможна эта функция. Можем ли мы просто согласиться с тем, что _мы хотим этого, все этого хотят, и если бы у нас был разумный путь вперед, который работал бы в подавляющем большинстве случаев использования, которые волнуют пользователей_, мы бы уже сделали это? Я пытаюсь сократить количество раз, когда мы должны говорить «о том, что невозможно сделать» с помощью предварительного планирования и проектных работ.

Это не новаторская магия, это просто усложняется из-за модели процессов Windows и WSL, и мы думаем, что в некоторых обстоятельствах она потерпит неудачу. Больше никто ничего не говорит.

  • Для WSL вы не просматриваете свой локальный. Если возвращается / home / foo, это местоположение. Если бы это было C: \ home \ foo, оно вернет / mnt / c / home / foo.

Но посмотрите, как эта функция работает, как указано в спецификации, Терминал не знает, кто или что сказал: «Текущий рабочий каталог - /home/foo ». Это может быть cmd.exe - тогда да, пользователь хочет C:\home\foo . Это может быть их дистрибутив Ubuntu или их дистрибутив Fedora, или это может быть ssh, подключенный к centos, или любая другая возможность. Все, что получает терминал, - это строка с надписью «сейчас это рабочий каталог».

Как он не знает, кто или что сказал, что это текущий рабочий каталог? Вы просите об этом. Вы знаете, командная строка это, WSL или PowerShell. Вы знаете, откуда он исходит, поэтому знаете, как отформатировать местоположение.

  • Я не уверен, что пользователь должен будет настроить, но с каких это пор настройка становится проблемой?

Практически каждую оболочку, которую запускает пользователь, нужно будет вручную настроить, чтобы разрешить отправку этой последовательности. Пользователям cmd потребуется вручную настроить% PROMPT%, включив в него последовательность $e]7;$P$e . bash должны будут установить его в своих PS1 . У PowerShell наверняка будет другой способ сделать это. Однако основная проблема здесь в том, что оболочки _ не_ испускают эту последовательность по умолчанию.

В чем проблема? Это не первое приложение, требующее настройки, и не последнее. Не все работает по принципу Plug and Play, и это понятно. Если единственный способ выполнить эту работу - это запросить конфигурацию для пользователя, как это сделать?

Что происходит, когда оболочка WSL сообщает: «Мой CWD - это / home / foo? Терминал не может узнать, что путь является путем WSL, или даже к какому дистрибутиву он принадлежит, поэтому дублирование этой вкладки, скорее всего, закончится в C: \ home \ foo (если он существует)

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

Я думаю, вы понимаете, что большинству людей, запрашивающих эту функцию, не хватает поведения в терминалах, таких как те, которые включены в GNOME и macOS. Эти терминалы не должны иметь дело с теми же сложностями, что и это, но в то же время я не думаю, что кто-то ожидает, что вы попытаетесь грамотно обработать крайние случаи, которых просто нет в программном обеспечении, которое они используя в качестве ориентира.

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

Может ли этот вариант использования быть обработан с помощью # 4472 в краткосрочной перспективе? Я лично был бы доволен некоторым вариантом cmd.exe /c "wt.exe" new-tab -p "Ubuntu-20.04" -d $(pwd) (вероятно, привязанным к макросу Bash), который открывал бы новую вкладку в последнем фокусированном окне (которое почти наверняка является окном, в котором я ввел команду в ).

Собираюсь рискнуть и сказать, что реализовать обнаружение текущего каталога корневого процесса проще, чем реализовать удаленное взаимодействие из командной строки и IPC, чтобы заставить WT открывать вкладки в том же окне: smile:

вау, я только что приехала сюда и поняла, что, похоже, нужно долгое путешествие :)

Мы обнаружили, что в терминале Windows мы можем разделить окна оболочки, нажав сочетание клавиш alt + shift + D, но он не установлен в тот же каталог.

У меня есть обходной путь: сменить начальный каталог.

Поместите эту функцию в $PROFILE (не забудьте отрегулировать $path )

function sd {
    $path = 'C:\Users\Admin\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json'
     ((Get-Content -path $path) -replace '"startingDirectory":.*', ("`"startingDirectory`": `"$pwd`"") -replace "\\", "\\") | Set-Content -Path $path
}

.. и вы сможете открыть новую вкладку в том же каталоге почти без проблем, просто убедитесь, что набрали sd перед открытием новой вкладки.

Конечно, недостатком является то, что startingDirectory изменяется каждый раз при вызове функции.

Лучше всего использовать этот подход с перенаправлением клавиш, чтобы при нажатии Ctrl+T функция вызывалась автоматически, а при нажатии Ctrl+F4 startingDirectory возвращался обратно к исходному значению.

Альтернативное решение

Внутри любого профиля, который вы используете, например profile.sh или .zshrc, создайте файл ~ / paths.sh, расположенный в вашем каталоге $ HOME. Пути будут обновляться всякий раз, когда вы вызываете setCWD

Это решение полностью отменяет startDirectory . Всякий раз, когда вы создаете новый вызов терминала setCWD перед созданием терминала, он всегда будет запускаться непосредственно из того, в котором вы последний раз вызывали setCWD .

Обратите внимание, что я сделал это в .zshrc

Код:

source ~/paths.sh

if [[ $SAVED_PWD != $PWD  ]]
then
  cd $SAVED_PWD
fi

function setCWD(){
  echo export SAVED_PWD=$(pwd) > ~/paths.sh
}

Возможно, вам потребуется создать исходный файл, поэтому просто вызовите setCWD .

Кстати, если вы используете autohotkey, вот хороший и быстрый скрипт, чтобы все заработало.

Создайте файл с именем windows-terminal.ahk а затем вставьте этот код ниже. Запустите файл, и все готово. (Я рекомендую переместить этот файл в раздел автозагрузки, чтобы при перезапуске эта функция применялась повторно.

#IfWinActive, ahk_exe WindowsTerminal.exe
  ^t::
    Send, setCWD {enter}
    Send, ^t

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

Похоже, что попытка «стандартизировать» OSC 7 на терминале-wg застопорилась .

Есть ли по-прежнему интерес к реализации OSC 7 в том виде, в котором он представлен в Terminal.app ?

Учитывая это, у нас будет «текущий хост и CWD» для данного терминала, что просто игнорирует обсуждение «взлома процесса»; а затем может решить / реализовать поведение пользователя, чтобы использовать эту информацию, например:

  • команда «новая вкладка в текущем каталоге»;
  • сделать это по умолчанию "split";
  • что-то волшебное, чтобы отличить сеанс WSL от сеанса Windows (если они вообще сообщают одно и то же имя хоста? Я не смотрел ...);
  • параметр конфигурации для «подавления OSC 7» в профилях, где вы _ знаете_, что он собирается отправить действительный на вид OSC 7, который вы не хотите использовать, например sshing на удаленную машину, которая требует то же имя хоста, что и ваш хост Windows;
  • выставление значения во что-то, что вы можете вставить в командную строку, чтобы ваш ssh- или wsl-сеанс _can_ появился в том же рабочем каталоге, что и тот, который вы только что скопировали.

Это обсуждение было очень сосредоточено на первой части (получение текущего CWD), но я подозреваю, что вторая часть потребует более тщательного рассмотрения, основываясь на уже существующих комментариях выше. Я уверен, что даже в отношении этого списка идей есть разумные возражения против каждой из них.

Для тех, кто еще увлекается этой темой, я сделал ранний пиар в # 7668. Это дружеский пинг. Я действительно хотел бы услышать об этом от всех.

Какой смысл в нескольких вкладках, особенно в быстром дублировании, если они не наследуют текущий каталог? Это такая важная особенность. Почему бы не добавить пока "хитрый" обходной путь? Я действительно не вижу проблемы с извлечением CWD из процесса в Windows, если это увеличивает производительность для всех пользователей, учитывая, что сама Windows содержит несколько таких решений более 20 лет.

Я не могу понять, почему эта функция не по умолчанию. Я действительно имею поражал, почему не существует даже способ , чтобы включить эту функцию. Это самый большой недостаток пользовательского опыта, который у меня есть с Терминалом: с точки зрения целесообразности мне лучше alt+shift+d затем cd попасть в нужное место.

Терминал значительно повышает качество жизни разработчиков Windows. Эта функция была бы огромным шагом вперед для меня (и я подозреваю, что другие). Я добавлю свой голос в поддержку того, чтобы эта функция была главным приоритетом.

Я не могу понять, почему эта функция не по умолчанию.

Я не могу понять, почему людям не нужно читать все расследования, проведенные в этой ветке, в # 7668, # 8214, # 8166 и других связанных потоках, чтобы понять, почему это на самом деле сложная проблема для решать. Оказывается, вы не можете просто указать клиентскому приложению свой путь - потому что Терминал _обязательно_ не будет знать, путь ли это Windows, WSL или cygwin.

Хорошо, что у нас есть группа талантливых участников, которые усердно работают над поиском правильного способа реализации поддержки этой функции без нарушения обратной совместимости для других приложений. Мы _ только на этой неделе_ придумали решение, которым мы довольны, и вскоре оно будет реализовано.

Спасибо @ zadjii-msft!

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

Терминал значительно повышает качество жизни разработчиков Windows. Эта функция была бы огромным шагом вперед для меня (и я подозреваю, что другие). Я добавлю свой голос в поддержку того, чтобы эта функция была главным приоритетом.

И до сих пор мой пользовательский опыт был таким:

Я не могу понять, почему эта функция не по умолчанию. Я действительно не понимаю, почему нет возможности включить эту функцию. Это самый большой пользовательский опыт ... и т. Д.

Наверное, мне следовало поставить «как пользователь» в начале моего первого абзаца.

Приношу свои извинения за любые оскорбления, которые я нанес.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги