2011-02-05 8 views
7

Z powodzeniem zainstalowałem i używałem MinGW i msys w przeszłości do kompilowania i łączenia plików wykonywalnych Windows. Na świeżej instalacji dla 32-bitowego systemu Vista (tej samej platformy, co poprzedniej) zauważam pewne denerwujące zachowanie: kiedy wpisuję małe litery "e" lub wielkie litery "P" w podanych warunkach powłoki, otrzymuję słyszalny dźwięk, ale bez charakteru! Oznacza to, że nie mogę wpisać "make" lub "echo", a następnie uruchomić te polecenia, na przykład. To idzie: m-a-k-BEEP!nie można wpisać "e" lub "P" w powłoce Minigra/msys lub terminalach

Ten brak 'e' BEEPING występuje w powłoce, która otwiera się po wywołaniu msys za pomocą skrótu, który jest generowany przez instalator, oraz w powłokach, przechodząc do c: \ msys \ 1.0 \ bin i po prostu podwójnie klikając bash .exe, sh.exe, rxvt.exe (właściwie to ma więcej stłumionego szumu niż ostry dźwięk BEEP), ale zawsze małe litery "e" i wielkie "P" nie będą echo do terminala (lub powłoki? Nie rozumiem różnic między tymi terminami).

Próbowałem zautomatyzowanych instalatorów MinGW i msys oraz świeżej instalacji ręcznej na tym samym końcu.

Nie bardzo dobrze rozumiem powłoki, albo jak ich środowiska ewoluują w miarę ich uruchamiania, więc nie wiem, gdzie zacząć szukać źródła tego zwariowanego zachowania.

+0

Mam ten sam problem z powłoką git w systemie Windows, ale nie ze świeżym bashiem MinGW. (Ta sama poprawka działała) ... Może to jest specyficzne dla niektórych wersji MSys? – Kos

Odpowiedz

12

Zakładam, że używasz Bash. Wydaje mi się, że kluczowe powiązania zostały z jakiegoś powodu zniweczone.

Jeśli do tego polecenia:

bind -p|grep -i '"[pE]"' 

należy uzyskać ten wynik:

"E": self-insert 
"e": self-insert 
"P": self-insert 
"p": self-insert 

Jeśli wpisy dla "P" i "e" a następnie spróbuj brakuje tych poleceń.

bind '"e":self-insert' 
bind '"P":self-insert' 

Oczywiście, nie można wpisać znaki, więc wpisać swoją wersję przeciwnej przypadku należy nacisnąć przycisk strzałki w lewo, a następnie naciśnij Alt-u do konwersji małych liter na małe „p” lub Alt-l (to jest niższy -case "ell") do obniżenia kapitału "E" (musisz to zrobić dla każdy "e" w pierwszym poleceniu).

Jeśli to zadziała, sprawdź plik ~/.inputrc pod kątem nieprawidłowych odszyfrowań. Sprawdź również pliki startowe, takie jak ~/.bashrc itd. Problem może dotyczyć brakujących lub niewłaściwie umieszczonych cudzysłowów i może być związany z kluczem o wartości podobnej do \eP, która domyślnie jest powiązana z funkcją readline do-lowercase-version.

+0

Twoje instrukcje działały idealnie. Udało mi się zobaczyć, że rzeczywiście "P" i "e" nie mają powiązań self-insert, dodali je, wszystko działało. Potem zacząłem polować i na pewno w pliku "~/.inputrc" znalazłem linie, które dodałem, uważając je za łagodne: 'echo $ PATH' i 'PATH = $ PATH:/c/MinGW/msys/1.0/bin :. " i "echo $ PATH", które z jakiegokolwiek powodu, gdy w przyczyna problemu, a kiedy wyjęte naprawić.Dziękuję Ci! –

+1

@dim fish: Tak, '~/.inputrc' nie jest plikiem wykonywalnym, więc nie można w nim umieścić poleceń. –

+0

@DennisWilliamson Mam ten sam problem z "b". Miałem ten sam problem z "e", który rozwiązałem przez usunięcie wszystkich ustawień z .inputrc. Przed wstawieniem "b" pojedynczego podwójnego cudzysłowu, teraz naciśnięcie "b" wstawia nieskończony ciąg podwójnych cudzysłowów, aż do naciśnięcia klawisza ctrl-c. Wpisuję 'bind '" b ": self-insert'' do inputrc, ale bez zmian.Moje msys jest bardzo minimalne, prawie żadne pakiety poza coreutils. – otonvm

0

w katalogu C: \ Documents and Settings \ Twoja nazwa użytkownika, można znaleźć plik o nazwie '.bashrc' dodać następujące 2 linie powiązań ' "e": self-Insert' powiązań „ "P": self-insert '

Dennis Williamson, Dziękuję bardzo! Ten problem dręczy mnie przez długi czas.

Powiązane problemy