Как не дать терминалу Cygwin забыть об окружающей среде при открытии его в не домашней папке? - PullRequest
0 голосов
/ 20 марта 2020

Я получил Ocaml за Windows, который поставляется в комплекте с Cygwin. Поскольку я хотел иметь возможность открывать mintty из командной строки в текущем каталоге, я добавил его в PATH, а затем просто запустил mintty. Хотя это приводит к его открытию в текущем каталоге, проблема заключается в том, что при запуске любого из исполняемых файлов Ocaml, например opam, я получаю сообщение об ошибке.

Marko@Lain /cygdrive/e/Webdev/Ocaml/todolist
$ opam
bash: opam: command not found

При запуске с использованием mintty -, например, ярлык делает, это на самом деле работает.

Marko@Lain ~
$ cd "E:\Webdev\Ocaml\todolist"

Marko@Lain /cygdrive/e/Webdev/Ocaml/todolist
$ opam
usage: opam [--version]
            [--help]
            <command> [<args>]

The most commonly used opam commands are:
    init         Initialize opam state, or set init options.
    list         Display the list of available packages.
    show         Display information about specific packages.
    install      Install a list of packages.
    remove       Remove a list of packages.
    update       Update the list of available packages.
    upgrade      Upgrade the installed package to latest version.
    config       Display configuration options for packages.
    repository   Manage opam repositories.
    switch       Manage multiple installation prefixes.
    pin          Pin a given package to a specific version or source.
    admin        Tools for repository administrators

See 'opam help <command>' for more information on a specific command.

Что мне нужно сделать, чтобы я получил это поведение нормально?

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

1 Ответ

1 голос
/ 21 марта 2020

Эта команда mintty - запускает вашу оболочку как логин. Если вы запускаете оболочку, не входящую в систему, большая часть сценария конфигурации не читается, а среда берется из родительского процесса, но, конечно, ваша ссылка не работает, так как Windows не может предоставить правильную.
Если вы хотите чтобы иметь возможность открыть login shell из проводника, лучше всего установить chere пакет

$ chere -h
/usr/bin/chere version 1.4

Usage:
/usr/bin/chere -<iuxlrhv> [-lracnmpf12] [-t <term>] [-s <shell>]
        [-d <display> ] [-o <options>] [-e <menutext>]

Adds the stated terminal/shell combination to the folder context menu
This allows you to right click a folder in Windows Explorer and open
a Cygwin shell in that folder.

Options:
  i - Install
  u - Uninstall
  x - Freshen eXisting entries
  l - List currently installed chere items
  r - Read all chere registry entries to stdout
  a - All users
  c - Current user only
  n - Be Nice and provide Control Panel uninstall option (Default)
  m - Minimal, no Control Panel uninstall
  p - Print regtool commands to stdout rather than running them
  f - Force write (overwrite existing, ignore missing files)
  1 - Start using registry one-liners. This doesn't work with ash,
      tcsh or network shares.
  2 - Start via bash script. Relies on windows to change directory,
      and login scripts avoiding doing a cd /home/Marco 
  h - Help
  v - Version

  t <term> - Use terminal term. Supported terminals are:
        cmd rxvt mintty xterm urxvt

  s <shell> - Use the named shell. Supported shells are:
        ash bash cmd dash fish mksh pdksh posh tcsh zsh passwd

  d <display> - DISPLAY to use (xterm, urxvt). Defaults to :0.
      Set to env to use the runtime environment variable.

  o <options> - Add <options> to the terminal startup command.
      If more than one option is specified, they should all be
      contained within a single set of quotes.

  e <menutext> - Use <menutext> as the context menu text.

See the man page for more detail.

Вы можете установить предпочитаемую оболочку или оболочку по умолчанию в меню проводника right click в качестве дополнительного элемента. Откроется login shell в выбранном каталоге.

enter image description here

...