Terminal: Терминал Windows: открыть терминал в текущей папке с помощью одной команды

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

В настоящее время я могу открыть cmd и powershell в текущей папке, набрав cmd или powershell в адресной строке проводника (которая открывается с помощью CTRL + D, так что это действительно аккуратно и быстро).

Было бы здорово, если бы это было возможно и с новым Терминалом Windows. Но поскольку это приложение из Магазина Windows, я не могу найти простой способ добавить его в PATH. Он также не уважает текущую папку при открытии. Он всегда запускается в папке по умолчанию ( C:\WINDOWS\system32 для cmd и ~ для Ubuntu).

Было бы здорово, если бы это было возможно:

  • Сделайте возможным добавить Windows Terminal в PATH.
  • Откройте командную строку в текущей папке в Терминале Windows.

Также было бы неплохо, если бы его можно было открыть с помощью короткой команды.
В настоящее время исполняемый файл называется WindowsTerminal . Было бы неплохо, если бы мы могли просто ввести что-то вроде term .

Resolution-Answered

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

Начиная с версии 0.5, это больше не будет работать. Вам нужно установить "startingDirectory": null чтобы это действительно работало. Это исправление непреднамеренно регрессировало в # 2515.

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

Что произойдет, если вы используете wt.exe ?

https://github.com/microsoft/Terminal/blob/af7316c130059ba15fe16ff0d13608d956a2b449/src/cascadia/CascadiaPackage/Package.appxmanifest#L51

Псевдоним уже должен запускать WindowsTerminal, но я не уверен, запускается ли он по указанному вами пути.

@joandrsn Это здорово, я не знал. Спасибо.

@joandrsn Спасибо! Он даже запускается в текущем каталоге!

Как передать путь к каталогу wt.exe. Что-то вроде этого:

wt.exe "C:\GitHub"

Пробовал, но всегда открывается в папке по умолчанию как для CMD, так и для PowerShell.

Я могу открыть оболочку WSL Ubuntu в текущей папке с помощью ubuntu run . но wt всегда открывается в папке по умолчанию

Удалите startingDirectory из вашего profiles.json.

Привет @ DHowett-MSFT!
есть ли способ попросить Windows Terminal открыть новую вкладку в той же папке, что и текущая вкладка? Я хочу такое же поведение, как и в Mac OS X : https://apple.stackexchange.com/questions/178017/how-do-i-open-a-new-terminal-window-for-same-directory -как текущее-окно.
Заранее спасибо!

Удалите startingDirectory из вашего profiles.json.

@ DHowett-MSFT, это не работает в последней версии 0.5.2661.0 :(

Удалите startingDirectory из вашего profiles.json.

У меня тоже не работает :(

Начиная с версии 0.5, это больше не будет работать. Вам нужно установить "startingDirectory": null чтобы это действительно работало. Это исправление непреднамеренно регрессировало в # 2515.

Я также хотел бы открывать новые вкладки в текущем каталоге

Начиная с версии 0.5, это больше не будет работать. Вам нужно установить "startingDirectory": null чтобы это действительно работало. Это исправление непреднамеренно регрессировало в # 2515.

@ zadjii-msft, это не работает в v0.5.2681.0

Начиная с версии 0.5, это больше не будет работать. Вам нужно установить "startingDirectory": null чтобы это действительно работало. Это исправление непреднамеренно регрессировало в # 2515.

Не работает и с 0.5.2762.0 ..
Я попытался удалить значение, установив значение null .. оба ничего не меняют ..

Чтобы было ясно, _удаление startingDirectory вместо установки null _ не является функцией, которая возвращается; мы рассматриваем альтернативные подходы относительно того, когда именно применять startDirectory, но этот параметр всегда можно подавить, установив для него значение null.

Начиная с версии 0.5, это больше не будет работать. Вам нужно установить "startingDirectory": null чтобы это действительно работало. Это исправление непреднамеренно регрессировало в # 2515.

Не работает и с 0.5.2762.0 ..
Я попытался удалить значение, установив значение null .. оба ничего не меняют ..

"startingDirectory": null у меня работает - его нужно поместить в определенный профиль, а не быть элементом корневого уровня

@ DHowett-MSFT мне кажется, что подход с настройками в файле конфигурации ( startingDirectory ), который можно переопределить, передав параметры командной строки, в целом довольно распространен. Может быть, я не понимаю здесь проблемы :)

Если я помню разговор в прошлом месяце, это было:

Очистка параметра «startDirectory» путем удаления его из вашего профиля пользователя (в конкретном случае двух или трех поставляемых профилей по умолчанию) вместо установки его на null чтобы очистить его, не является функцией, которая будет возвращается.

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

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

Для меня установка "StartingDirectory": "." делает свою работу.

есть ли еще одна проблема с открытым терминалом по умолчанию, чтобы сказать "%USERPROFILE%" но null при запуске из проводника Windows?

@carlinmack Я не думаю, что это совершенно необходимо.

  • Терминал Windows по умолчанию использует домашний каталог пользователя, если вы запускаете его через ярлык в меню «Пуск» или набираете «wt» в Win + R. Это означает, что если вы используете "startingDirectory": "." они все равно открываются в домашней папке пользователя ( %USERPROFILE% ).
  • Если вы запустите wt из адресной строки Windows Explorer или через что-то вроде cmd.exe (или другой оболочки) перейдете в определенную папку, то "startingDirectory": "." обеспечит открытие Терминала Windows в каталоге, в котором вы были.
  • Однако ... Любые дополнительные вкладки, которые вы открываете в сеансе Windows Terminal, будут открываться в «текущем рабочем каталоге» с момента запуска, что может быть незначительным раздражением.

Терминал Windows по умолчанию использует домашний каталог пользователя, если вы запускаете его через ярлык в меню «Пуск» или набираете «wt» в Win + R. Это означает, что если вы используете "startDirectory": "." они по-прежнему открываются в домашней папке пользователя (% USERPROFILE%).

В этом случае для меня по умолчанию используется system32.

Спасибо @torpederos

"startDirectory": " . "
"startDirectory": "% __ CD __ %"

Проверено. У меня оба работают нормально. Мое решение .

@RickStrahl написал хороший блог по этому поводу. Проверить это .

В моем случае это сработало.

"profiles":
    {
        "defaults":
        {
            "startingDirectory": "."
        },

"startingDirectory": "." работает, но когда я открываю терминал из поиска, по умолчанию используется system32.
Есть ли способ открыть в каталоге пользователя, если путь не указан?

"startingDirectory": "." работает, но когда я открываю терминал из поиска, по умолчанию используется system32.
Есть ли способ открыть в каталоге пользователя, если путь не указан?

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

export CURR_DIRECTORY=`pwd`
if [ "$CURR_DIRECTORY" = "/mnt/c/WINDOWS/system32" ]; then
    cd ~
fi

Решение @manishprivet было отличным, за исключением того, что для правильной работы я изменил system32 на System32 . Хорошая идея - запустить pwd и скопировать вывод.

Я нашел обходной путь, добавив «открыть терминал здесь», чтобы щелкнуть правой кнопкой мыши.

шаг 1:-
Удалите начальный каталог из settings.json для всех профилей.

шаг 2:-
Добавьте открытый терминал, чтобы щелкнуть правой кнопкой мыши в соответствии с этим сообщением.
https://github.com/microsoft/terminal/issues/1060#issuecomment -497539461
Я изменил 2-е значение реестра с @="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe" на @="C:\Users\[your username]\AppData\Local\Microsoft\WindowsApps\wt.exe -d ."

Поведение после доработок:
Поэтому всякий раз, когда я открываю терминал с помощью поиска / панели задач / ярлыка, он открывается в моей пользовательской папке.
Всякий раз, когда я хочу открыть терминал с помощью проводника, я просто щелкаю правой кнопкой мыши и выбираю опцию Windows terminal here .

Примечание 1. Не забудьте добавить -d . в конце второго значения реестра, иначе это не сработает.

Примечание 2: ввод wt в панели проводника по-прежнему открывает терминал в system32. Вам все равно следует ввести wt -d . если вы хотите открыть терминал в текущей папке с помощью «панели проводника».

Просто добавь

"startingDirectory": null

Он корректно работает с wt V1.0.

Если вы предпочитаете, чтобы wt отображался в SHIFT-меню точно так же, как «Открыть окно PowerShell здесь» или открыть параметры WSL, вы можете объединить этот файл реестра в свой реестр.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows Terminal here"
"ShowBasedOnVelocityId"=dword:00639bc8
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\[YourUserName]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

Обратите внимание, что параметр startingDirectory должен находиться в этом месте в структуре JSON:

{
    //...

    "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.

            // Attempt to start in current directory
            // https://github.com/microsoft/terminal/issues/620
            "startingDirectory": "."
        }
    }
}

Мне еще предстоит увидеть решение, которое будет делать следующее:

  1. Разрешите мне выбрать каталог по умолчанию, когда я открываю Терминал из меню «Пуск».
  2. При запуске wt.exe из окна проводника откроет Терминал в этот каталог.

Это возможно?

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

Если вы хотите, чтобы оба работали, вам нужно использовать wt -d . в адресной строке проводника. Это позволит запускать терминал из меню «Пуск», а окно запуска работать так же, как и раньше, и по-прежнему позволяет открывать терминал в CWD в проводнике.

Из моего первоначального исследования вот что я нашел на основе https://docs.microsoft.com/en-us/windows/terminal/command-line-arguments?tabs=windows

Подход 1:

  1. Нажмите клавишу WIN + R
  2. Введите wt -d D:\SomeDirectory

Это откроет оболочку по умолчанию, присутствующую в settings.json с этим каталогом.
PS Выбирайте путь исходя из ОС оболочки по умолчанию

Подход 2:

  1. Перейдите в нужную папку с помощью проводника.
  2. В адресной строке нужной папки введите wt -d .

@AndeYashwanth Это отлично работает, спасибо. Теперь я могу открыть его в моем пользовательском каталоге с панели задач и открывать только в текущем каталоге, когда я щелкаю правой кнопкой мыши 😎

Спасибо @ 29kartik подход 1 сработал для меня. Мне удалось заставить GitKraken использовать пользовательскую команду терминала wt -d %d так что теперь ярлык терминала запускает WT в текущем каталоге репо. 💯

Я добавил это, чтобы открыть в этой конкретной папке

 "startingDirectory": "C:\\webdev"

Это мой вариант с помощью ярлыка контекстного меню: https://gist.github.com/kmantel/9cd6bf9f0fb25694a5b08119817281b7

@nickraphael :

Мне еще предстоит увидеть решение, которое будет делать следующее:

  1. Разрешите мне выбрать каталог по умолчанию, когда я открываю Терминал из меню «Пуск».
  2. При запуске wt.exe из окна проводника откроет Терминал в этот каталог.

Имея это в settings.json :

{
    "profiles": {
        "defaults": {
            "startingDirectory": "."
        }
    }
}

заставляет Windows Terminal запускаться в текущем каталоге для меня при запуске из окна местоположения проводника, win + r или из других программ (VS Code и т. д.). Однако при запуске из меню «Пуск» путем поиска или перехода к ярлыку он начинается с C:\WINDOWS\system32 .

Чтобы исправить проблему с меню «Пуск», я прикрепил ярлык к wt.exe в меню «Пуск» ( where wt сообщает его местоположение), переименовал ярлык по своему вкусу, а затем изменил его так:

Start in: %USERPROFILE%

Теперь Терминал Windows запускается в моем домашнем каталоге при запуске из меню «Пуск».

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

Мне также интересно, может ли установщик автоматически создать ярлык для wt.exe .

Итак, ни один из приведенных выше ответов не сработал для моего варианта использования. Я бы хотел открыть новую вкладку с помощью alt+shift+- и сохранить предыдущую папку. Я пробовал использовать null , "." и "%__CD__%" качестве значений для "startingDirectory" в разных местах JSON. Я использую версию Windows Terminal Preview 1.4.2652.0 .

Хорошим решением было бы иметь новую опцию, например "keepCurrentDirectoryOnNewTab": true или что-то в этом роде. Другой способ (который использует Китти) - это специальное значение current при указании каталога.

@frankitox Вы, вероятно, заинтересованы в # 3158 и подобных 20 проблемах, которые дублируются в этой теме
image

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

ВЕРСИЯ: 1.3.2651.0

в моем случае это работает.

    "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
            "startingDirectory": "."
        },

также вы можете использовать "startingDirectory": "%__CD__%"

Я, вероятно, очень опаздываю на вечеринку, но в Windows 10 Pro 20H2 вы можете просто ввести wt в адресной строке, и это поможет.

Как передать путь к каталогу wt.exe. Что-то вроде этого:

wt.exe "C:\GitHub"

Я не знаю, нашли ли вы -d и путь

wt -d .

хорошо работает в WSL2

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