Jak wpisać niedrukowalne znaki ASCII w terminalu Mac OS X? [duplikować]

16

Aby komunikować się z urządzeniem typu szeregowego za pośrednictwem gniazda Telnet, muszę wpisać znak null (ASCII 0) i wszystkie inne niedrukowalne znaki ASCII.

W systemie Windows przytrzymaj klawisz ALT i wpisz kod ASCII.

Jak to zrobić w systemie Mac OS X?

davidcann
źródło

Odpowiedzi:

18

CtrlSpace wysyła ASCII NUL.

W ogólnym przypadku, Preferencje systemowe> Klawiatura> Źródła wejściowe , przewiń w dół listy i wybierz opcję Hex Unicode .

Następnie możesz użyć CmdShiftSpace(i, jeśli wyłączysz korzystanie z niego przez Spotlight CmdSpace), aby przełączyć między trybami wprowadzania lub przypisać mu własny skrót klawiaturowy (i prawdopodobnie inny, aby przełączyć z powrotem) w Preferencjach systemowych> Klawiatura> Skróty klawiaturowe .

Po włączeniu wprowadzania szesnastkowego Unicode przytrzymujesz Optioni wpisujesz 4-cyfrowy kod szesnastkowy; po zwolnieniu Optionnależy go wpisać. Możesz pozostać w tym trybie, dopóki nie potrzebujesz żadnych znaków poza U+007F(lub oczywiście wpisz je wszystkie z wejściem szesnastkowym zamiast, powiedzmy, Optione episać é).

geekozaur
źródło
1
Wielkie dzięki! Uwaga dla innych: w moim systemie domyślnym klawiszem skrótu była Opcja Cmd Space.
davidcann
W systemie Mac OS X jest to Shift + Alt + Spacja
W moim przypadku musiałem wpisać DLEznak (Unicode 0x10) w wierszu polecenia. DLEto to samo, Ctrl-Pco w każdym programie, który używa polecenia readline„przewiń do poprzedniego wpisu”, więc to samo co naciśnięcie . Aby wpisać jakąś DLEpostać na moim terminalu, musiałem zrobić Ctrl-Vwtedy Opt-0-0-1-0i mam charakter, który wygląda jak na ekranie ^P.
Christopher Schultz
2

W wielu aplikacjach CLI / TUI można nacisnąć CtrlV, aby poinformować aplikację, aby zaakceptowała kolejne naciśnięcie klawisza jako nieprzetworzone kody znaków zamiast wywoływania normalnej funkcji.

Ignacio Vazquez-Abrams
źródło