Выполнение MSS2 Emacs из командной строки Windows или ярлыка - PullRequest
1 голос
/ 31 октября 2019

Я недавно установил MSYS2 с Emacs (64-разрядная версия) и в настоящее время вызываю этот Emacs с помощью ярлыка Windows. Он работает нормально, точно так же, как если бы я скачал исполняемый файл Emacs для Windows и разархивировал его куда-нибудь. То есть он собирает все мои переменные окружения Windows и тому подобное.

По разным причинам я бы предпочел запустить Emacs из командной оболочки MSYS2 и использовать переменные среды в этой оболочке. В его нынешнем виде я могу открыть оболочку MSYS2 MINGW64, набрав emacs в командной строке, и все будет работать так, как я хочу.

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

C:\msys64\bin\mintty.exe /bin/env MSYSTEM=MINGW64 /bin/bash -l -c /mingw64/bin/emacs

Это успешно открывает Emacs, но не может загрузить файл .bashrc, который я искал в .bash_profileобычным образом:

if [ -f "${HOME}/.bashrc" ] ; then
  source "${HOME}/.bashrc"
fi

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

C:\msys64\bin\mintty.exe /bin/env HOME=/home/alanhr MSYSTEM=MINGW64 /bin/bash -l -c /mingw64/bin/emacs

я получу точно такой же результат: .bashrc не найден и моя функция не будет выполнена. Вот где это становится странным. Если я просто отключу вызов emacs следующим образом:

C:\msys64\bin\mintty.exe /bin/env HOME=/home/alanhr MSYSTEM=MINGW64 /bin/bash -l

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

Это похоже на классический случай пропуска чего-то, что находится прямо у меня под носом, но я прочитал bash Справочная страница безрезультатно. У кого-нибудь есть идеи, как я могу заставить это работать?

...